エッジでの HTTP リダイレクトの生成
Last updated October 11, 2018
ユーザーのオリジンへのリクエストをリダイレクトしたい場合があります。たとえば、セキュアな Web ページ、そうでない Web ページ、または前回の訪問以降に移動したページなどへです。 リダイレクト用の Synthetic レスポンスをエッジで生成し、適切な Location ヘッダを持つコンテンツルールを作成することで、オリジンに処理をさせずにエッジからリダイレクトを送信することができます。
ヒント: このガイドでは、ある URL から別の URL に301 (または302) でリダイレクトさせる方法を説明します。もしすべての HTTP リクエストを HTTPS にリダイレクトさせたい場合は、 TLS 接続のみを許可する方法で容易な方法を説明していますのでそちらをご参照ください。
新しいレスポンスと条件の作成
エッジでリダイレクトを生成するには、まず適切なステータスコードのレスポンス、およびそれを適用する条件を作成します。
- Fastly コントロールパネルにログインし、Configure のリンクをクリックします。
- サービスメニューから設定対象のサービスを選択します。
- Edit configuration ボタンをクリックし、Clone active を選択すると設定画面が開きます。
- Content のリンクをクリックし、Content 設定画面を開きます。
-
Set up advanced response をクリックし、Create a new synthetic response 設定画面を開きます。
- 以下の要領で Create a synthetic responses ウィンドウの各フィールドに入力します。
- Name フィールドに、レスポンスを説明する名前を入力します (例:
Redirect to blog
)。この名前は Fastly コントロールパネルに表示されます。 - Status メニューから、レスポンスのヘッダに含める必要がある HTTP ステータスコードを選択します (例:
301 Moved Permanently
や302 Moved Temporarily
など)。 - MIME Type フィールドは空にします。
- Name フィールドに、レスポンスを説明する名前を入力します (例:
- Create をクリックして、 新しいレスポンスを作成します。
-
Content 設定画面で作成したレスポンス設定の右側にある Attach a condition リンクをクリックし、 Create a new request condition 設定画面を開きます。
- 以下の要領で Create a new request condition ウィンドウの各フィールドに入力します。
* Name フィールドに、 条件を説明する名前を入力します (例:
URL is /wordpress
)。). この名前は Fastly コントロールパネルに表示されます。- Apply If フィールドに、 条件が真か偽かを判断するために、 VCL 内で実行する論理式を入力します (例:
req.url ~ "^/wordpress"
)。
- Apply If フィールドに、 条件が真か偽かを判断するために、 VCL 内で実行する論理式を入力します (例:
- Save and apply to をクリックして、新しい条件を作成します。
新しいヘッダと条件の作成
新たに Location ヘッダを定義し、ステータスコードと URL の両方が条件に一致した時のみにヘッダの作成が行われるように設定します。これにより Synthetic リダイレクトの設定が完了します。
-
Content 設定画面で Create header をクリックし、Create a new header page 設定画面を開きます。
- 以下の要領で Create a header ウィンドウの各フィールドに入力します。
- Name フィールドに、ヘッダを説明する名前を入力します (例:
Location for wordpress redirect
)。 - Type および Action メニューから、それぞれ Response と Set を選択します。
- Destination フィールドに
http.Location
と入力します。 - Source フィールドに、新たなコンテンツのソースの場所を入力します (例:
"http://www.example.com/new-location/of/item"
)。 - Ignore If Set および Priority フィールドは、デフォルト設定をそのまま使用します。
- Name フィールドに、ヘッダを説明する名前を入力します (例:
- Create をクリックして、新しいヘッダを作成します。
-
Content 設定画面で作成したヘッダ設定の右側にある Attach a condition リンクをクリックし、 Create a new response condition 設定画面を開きます。
- 以下の要領で Create a new response condition ウィンドウの各フィールドに入力します。
- Name フィールドに、条件を説明する名前を入力します (例:
Set location for blog redirect
)。 - Apply If フィールドに、条件が真か偽かを判断するために、VCL 内で実行する論理式を入力します (例:
req.url ~ "^/wordpress" && resp.status == 301
)。resp.status
は、前述のレスポンスで生成されるレスポンス・コードと一致する必要があります。
- Name フィールドに、条件を説明する名前を入力します (例:
- Save and apply to をクリックして、 新しい条件を作成します。
- Activate ボタンをクリックしてサービスをデプロイします。
注意: これらのレスポンスは、500 より大きなカスタム・ステータス番号を使用します。これらは、ダッシュボードページにおいて、想定された動作であってもエラーとして表示されます。