オリジンサーバー上のリソースのストレージパスが変更された場合でも、リクエスト URL が変更されない場合は、Edge Security Acceleration (ESA) のポイント・オブ・プレゼンス(POP)でリダイレクトルールを設定できます。これらのルールはオリジンパスに一致し、リクエスト URL を送信先 URL へリダイレクトします。これにより、オリジンリクエストの数が削減され、クライアントのアクセスパフォーマンスが向上します。
仕組み
リダイレクトルールの動作は以下のとおりです:
ESA POP でリダイレクトルールを設定した後、クライアントがリソースへのアクセスをリクエストします。
ESA POP は、301 や 302 などのリダイレクトステータスコードをクライアントに返します。HTTP ヘッダーには送信先 URL が含まれます。
クライアントが応答を受信すると、ESA POP から返された Location ヘッダー内の URL に対して新たなリクエストを送信し、リソースにアクセスします。
ESAでサポートされるリダイレクトステータスコードと適用シナリオ
ステータスコード | 意味 | 処理方法 | 適用シナリオ |
301 | Moved Permanently(恒久的に移動) | GET メソッドは変更されません。その他のメソッドは GET に変更される場合があります。 | リクエストされたリソースが、Location ヘッダーで指定された新しい URL に恒久的に移動しました。検索エンジンはリンクを更新します。 |
302 | Found(見つかりました) | GET メソッドは変更されません。その他のメソッドは GET に変更される場合があります。 | ページが一時的に利用できません。検索エンジンはリンクを更新しません。 |
303 | 他を参照 | GET メソッドは変更されません。その他のメソッドは強制的に GET に変更され、リクエストボディは失われます。 | PUT や POST リクエスト完了後のページ遷移に使用され、ページのリフレッシュによる重複操作を防止します。 |
307 | Temporary Redirect(一時的なリダイレクト) | メソッドおよびリクエストボディは変更されません。 | ページが一時的に利用できません。サイトが GET 以外のメソッドを使用するリンクや操作をサポートしている場合、このステータスコードは 302 より適しています。 |
308 | Permanent Redirect(恒久的なリダイレクト) | メソッドおよびリクエストボディは変更されません。 | リソースの恒久的な移行に使用されます。クライアントに対して元のリクエストメソッドおよびリクエストボディを保持することを強制します。ウェブサイトのリファクタリングや API 移行など、意味的整合性が求められるシナリオに有効です。 |
操作手順
リダイレクトルールを追加した後、ユーザーがリソースアクセスをリクエストすると、ESA は優先度の順にルールを照合・実行し、結果を返します。
サイト管理 を ESA コンソールで選択します。サイト 列で対象のサイトをクリックします。
左側のナビゲーションウィンドウで、 を選択します。
ルールを追加 をクリックし、ルール名 を入力します。
リクエストが以下のルールと一致する場合... セクションで、一致させるリクエストの特徴を設定します。詳細については、「ルール式の構成要素」をご参照ください。
単一リダイレクト セクションで、タイプを 静的 に設定し、URL を入力し、ステータスコード を選択します。

パラメーター
タイプ
説明
タイプ
静的
固定 URL へリダイレクトする場合は、静的 を選択し、送信先 URL を固定文字列として設定します。たとえば、URL に
https://test.example.com/image/1.jpg?test=123を入力します。動的
元の URL を動的に変更する場合は、動的 を選択し、送信先 URL を式として設定します。たとえば、式 に
concat("https://www.example.com", http.request.uri.path)を入力します。これにより、リクエスト URL のホスト名が新しいドメイン名に置き換えられますが、URL パスは保持されます。ステータスコード
リダイレクトに対する応答ステータスコードです。有効な値は、301(デフォルト)、302、303、307、308 です。詳細については、「ESAでサポートされるリダイレクトステータスコードと適用シナリオ」をご参照ください。
クエリ文字列の保持
元のリクエストからクエリパラメーターを送信先 URL に引き継ぐかどうかを指定します。この機能はデフォルトで無効化されており、リダイレクト後に元のリクエストのクエリパラメーターは引き継がれません。
クエリ文字列の保持 を有効化した場合:
リクエスト URL にクエリ文字列が含まれている場合、リダイレクト URL のクエリ文字列が上書きされます。
リクエスト URL にクエリ文字列が含まれていない場合、リダイレクト URL のクエリ文字列が使用されます。
設定例については、「設定例」をご参照ください。
OK をクリックします。
設定例
静的タイプの操作例
シナリオ 1
リクエストにクエリ文字列が含まれる:いいえ
リダイレクト URL にクエリ文字列が含まれる:はい
クエリ文字列の保持設定:有効/無効
サンプルリクエスト URL:
http://test.example.com/1.jpg設定済みのリダイレクト URL のサンプル:
http://test.example.com/image/1.jpg?test=123実際のリダイレクト Location のサンプル:
http://test.example.com/image/1.jpg?test=123注:元のリクエストにクエリパラメーターがない場合、最終的な Location は、クエリ文字列の保持設定の有無に関わらず、設定済みの URL のクエリ文字列を必ず保持します。
シナリオ 2
リクエストにクエリ文字列が含まれる:はい
リダイレクト URL にクエリ文字列が含まれる:はい
クエリ文字列の保持設定:有効
サンプルリクエスト URL:
http://test.example.com/1.jpg?test=321設定済みのリダイレクト URL のサンプル:
http://test.example.com/image/1.jpg?test=123実際のリダイレクト Location のサンプル:
http://test.example.com/image/1.jpg?test=321注:クエリ文字列の保持設定が有効な場合、元のリクエストのクエリ文字列のみが保持され、設定済みの URL のクエリ文字列は無視されます。
シナリオ 3
リクエストにクエリ文字列が含まれる:はい
リダイレクト URL にクエリ文字列が含まれる:はい
クエリ文字列の保持設定:無効
サンプルリクエスト URL:
http://test.example.com/1.jpg?test=321設定済みのリダイレクト URL のサンプル:
http://test.example.com/image/1.jpg?test=123実際のリダイレクト Location のサンプル:
http://test.example.com/image/1.jpg?test=123注:クエリ文字列の保持設定が無効な場合、設定済みの URL のクエリ文字列のみが保持され、元のリクエストのクエリ文字列は無視されます。
シナリオ 4
リクエストにクエリ文字列が含まれる:はい
リダイレクト URL にクエリ文字列が含まれる:いいえ
クエリ文字列の保持設定:有効
サンプルリクエスト URL:
http://test.example.com/1.jpg?test=321設定済みのリダイレクト URL のサンプル:
http://test.example.com/image/1.jpg実際のリダイレクト Location のサンプル:
http://test.example.com/image/1.jpg?test=321注:クエリ文字列の保持設定が有効な場合、設定済みの URL にクエリパラメーターがなくても、元のリクエストのクエリ文字列が自動的に付加されます。
シナリオ 5
リクエストにクエリ文字列が含まれる:はい
リダイレクト URL にクエリ文字列が含まれる:いいえ
クエリ文字列の保持設定:無効
サンプルリクエスト URL:
http://test.example.com/1.jpg?test=321設定済みのリダイレクト URL のサンプル:
http://test.example.com/image/1.jpg実際のリダイレクト Location のサンプル:
http://test.example.com/image/1.jpg注:クエリ文字列の保持設定が無効な場合、元のリクエストのクエリ文字列は破棄され、設定済みの URL のみが返されます。
動的タイプの操作例
シナリオ 1
クエリ文字列の保持設定:無効
サンプルリクエスト URL:
https://test.example.com/image/1.jpg?test=123関数式:
concat("https://www.example.com", http.request.uri.path)実際のリダイレクト Location のサンプル:
https://www.example.com/image/1.jpg注:
設定が無効な場合、パス部分(
/image/1.jpg)のみが保持され、元のリクエストのクエリ文字列(?test=123)は無視されます。関数式はドメイン名とパスの結合のみを処理し、クエリパラメーターは処理しません。
シナリオ 2
クエリ文字列の保持設定:有効
サンプルリクエスト URL:
https://test.example.com/image/1.jpg?test=123関数式:
concat("https://www.example.com", http.request.uri.path)実際のリダイレクト Location のサンプル:
https://www.example.com/image/1.jpg?test=123注:
設定が有効な場合、元のリクエストのクエリ文字列は、関数式がクエリパラメーターを明示的に処理しなくても、生成された URL に自動的に付加されます。
関数式はパスの結合のみを処理します。システムが設定に基づいてクエリ文字列を自動的に付加します。
シナリオ 3
クエリ文字列の保持設定:有効
サンプルリクエスト URL:
https://www.example.com/image-flower-20250816-1.html?src=cdn関数式:
wildcard_replace(http.request.full_uri, "https://www.example.com/image-*", "https://www.example.com/${1}")実際のリダイレクト Location のサンプル:
https://www.example.com/flower-20250816-1.html?src=cdn注:
設定が有効な場合、システムは元のリクエストのクエリ文字列(例:
?src=cdn)を、関数式によって生成された送信先 URL の末尾に自動的に付加します。関数式はパスの書き換えと結合のみを処理すればよく、クエリパラメーターを明示的に処理する必要はありません。システムが設定に基づいてクエリ文字列を自動的に透過します。
シナリオ 4
クエリ文字列の保持設定:無効
サンプルリクエスト URL:
https://www.example.com/index.html?place=garden&date=20250816関数式:
wildcard_replace(http.request.full_uri, "https://www.example.com/index.html?place=garden&date=*", "https://www.example.com/flower-${1}-1.html")実際のリダイレクト Location のサンプル:
https://www.example.com/flower-20250816-1.html注:
設定が無効な場合、システムは元のリクエストのクエリ文字列を自動的に保持しません。送信先 URL は関数式によって完全に生成されます。元のパラメーター(例:
place=garden)はルール照合にのみ使用されます。*はdateの後の値にマッチし、書き換え時に${1}として使用されます。最終的なリダイレクト URL には元のクエリパラメーターは含まれず、これは静的リダイレクトのロジックと整合しています。
利用可能範囲
機能 | Entrance | Pro | Premium | Enterprise |
ルール数 | 10 | 25 | 50 件 | 125 件 |
参考
ルール関連の機能は、実行優先度、ルールの動作、構成範囲 の点で異なります。詳細については、「ESA ルールの適用方法」をご参照ください。