Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Bulk Redirects の仕組み

最終更新 Markdown で表示Agent セットアップ

リクエストが Cloudflare に届くと、オリジンサーバーへ送られる前に Bulk Redirects が評価されます。Cloudflare は、Bulk Redirect Rule で有効になっている各 Bulk Redirect List のすべての URL リダイレクトを確認します。

URL 照合アルゴリズム に従って URL リダイレクトが一致すると、その URL リダイレクトの設定パラメーターに従い、すぐにリダイレクトアクションが実行されます。リダイレクトアクションが実行されると、Cloudflare はそれ以上の処理を行いません。

リダイレクトのソース URL の照合

次の URL リダイレクトパラメーターは、リクエスト URL と、設定済み(かつ有効)な URL リダイレクトのソース URL の照合動作を制御します。

  • Subpath matching(サブパス照合) (default: false)

    • true のとき、URL リダイレクトは正確なソースパスだけでなく、その配下のすべてのパスにも適用されます。たとえば、次のソース URL とターゲット URL の URL リダイレクトを考えます。

      • ソース URL: https://example.com/foo/
      • ターゲット URL: https://example.com/qux/
    • この設定で Subpath matching を有効にすると、example.com/foo/bar への受信リクエストは https://example.com/qux/bar にリダイレクトされます。

  • Include subdomains(サブドメインを含める) (default: false)

    • true のとき、URL リダイレクトはソース URL の正確なホスト名だけでなく、そのサブドメインにも一致します。たとえば、次のソース URL とターゲット URL の URL リダイレクトを考えます。

      • ソース URL: https://example.com/about
      • ターゲット URL: https://example.com/newpage
    • この設定で Include subdomains を有効にすると、指定ドメイン(サブドメインなしの https://example.com/about)に加え、http://a.example.com/abouthttp://a.b.example.com/about への受信リクエストも一致します。

これらのパラメーターの詳細は URL リダイレクトパラメーター を参照してください。

パスとクエリ文字列の動作を設定する

次のパラメーターは、最終的なターゲット URL のパスとクエリ文字列を Cloudflare がどう決めるかを設定します。

  • Preserve query string(クエリ文字列を保持) (default: false)

    • true のとき、最終的なターゲット URL は元のリクエストのクエリ文字列を保持します。たとえば、次のソース URL とターゲット URL の URL リダイレクトを考えます。

      • ソース URL: https://example.com/about
      • ターゲット URL: https://example.com/newpage
    • この設定で Preserve query string を有効にすると、http://example.com/about?q=term への受信リクエストは https://example.com/newpage?q=term にリダイレクトされます。Preserve query string が無効な場合、同じ受信リクエストは https://example.com/newpage にリダイレクトされます。

  • Preserve path suffix(パスサフィックスを保持) (default: true)

    • true のとき、最終的なターゲット URL には残りのパスセグメント(リクエストパスのうち、URL リダイレクトのソース URL に一致しなかった部分)が含まれます。

    • Subpath matching が有効なとき、一致しなかったパスが最終的なターゲット URL にコピーされます。たとえば、次のソース URL とターゲット URL の URL リダイレクトを考えます。

      • ソース URL: https://example.com/a/
      • ターゲット URL: https://example.com/b/
    • https://example.com/a/foo への受信リクエストは https://example.com/b/foo にリダイレクトされます。

    • Preserve path suffixfalse にすると、同じリクエストはリダイレクトに一致しますが、https://example.com/b/ にリダイレクトされます。

これらのパラメーターの詳細は URL リダイレクトパラメーター を参照してください。

URL 照合アルゴリズム

受信リクエストの URL がリスト内の URL リダイレクトに一致するのは、次の場合です。

  1. スキーム(http または https)が URL リダイレクト定義のソース URL と同じです。スキームのないソース URL は httphttps の両方に一致します。

  2. ホスト名が URL リダイレクト定義のソース URL のホスト名と同じです。Include subdomains が有効な場合、リダイレクト定義のホスト名のサブドメインも一致します。

  3. パスがソース URL と同じです。Subpath matching が有効な場合、Cloudflare は一致判定時に URL リダイレクトのソース URL のサブパスも考慮します。たとえば、ソース URL が example.com/blog の URL リダイレクトは、example.com/blog/fooexample.com/blog/bar へのリクエストにも一致します。

適用する URL リダイレクトの決定

複数の URL リダイレクトが適用できる場合、次の規則で勝ち残るリダイレクトが決まります。

  1. Subpath matching が有効な 2 つの URL リダイレクトがあるとき、より具体的なパスの URL リダイレクトが優先されます。
    ソース URL パスが /folder/folder/subfolder の 2 つがある場合、/folder/subfolder/item への受信リクエストは、より具体的な 2 番目のリダイレクト(/folder/subfolder)に一致します。

  2. 正確なホスト名の URL リダイレクトは、Include subdomains が有効な URL リダイレクトより優先されます。

  3. Include subdomains が有効な 2 つの URL リダイレクトがあるとき、より具体的なドメインの URL が優先されます。
    ソース URL ホスト名が bar.comfoo.bar.com の 2 つがある場合、qux.foo.bar.com への受信リクエストは、より具体的な 2 番目のリダイレクト(foo.bar.com)に一致します。

  4. 特定のスキーム(http または https)の URL リダイレクトは、両方のスキームに一致する URL リダイレクトより優先されます。

役に立ちましたか?