仕組み
各リクエストに対して、Cloudflareはバルクリダイレクトルールによって有効化された各バルクリダイレクトリストのすべてのURLリダイレクトを評価します。
URLマッチングアルゴリズムに従ってURLリダイレクトに一致する場合、リダイレクトアクションはURLリダイレクトの設定パラメータに従って即座に実行されます。リダイレクトアクションが実行された後、Cloudflareはさらなる処理を行いません。
以下のURLリダイレクトパラメータは、リクエストURLと設定された(および有効化された)URLリダイレクトのソースURLとのマッチング動作を制御します:
-
サブパスのマッチング(デフォルト:false)
-
trueの場合、URLリダイレクトは指定されたソースパスの下のすべてのパスに適用されます。例えば、次のソースURLとターゲットURLを考えてみましょう:
— ソースURL:
https://example.com/foo/— ターゲットURL:
https://example.com/qux/ -
この設定でサブパスのマッチングが有効な場合、
example.com/foo/barへのリクエストはhttps://example.com/qux/barにリダイレクトされます。
-
-
サブドメインを含む(デフォルト:false)
-
trueの場合、URLリダイレクトのソースURLホスト名はそのすべてのサブドメインにも適用されます。例えば、次のソースURLとターゲットURLを考えてみましょう:
— ソースURL:
https://example.com/about— ターゲットURL:
https://example.com/newpage -
この設定でサブドメインを含むが有効な場合、
http://a.example.com/aboutおよびhttp://a.b.example.com/aboutへのリクエストも、指定されたドメイン(サブドメインなし)https://example.com/aboutに加えてマッチします。
-
これらのパラメータに関する詳細情報は、URLリダイレクトパラメータを参照してください。
以下のパラメータは、Cloudflareが最終ターゲットURLのパスとクエリ文字列をどのように決定するかを設定します:
-
クエリ文字列を保持(デフォルト:false)
-
trueの場合、最終ターゲットURLは元のリクエストのクエリ文字列を保持します。例えば、次のソースURLとターゲットURLを考えてみましょう:
— ソースURL:
https://example.com/about— ターゲットURL:
https://example.com/newpage -
この設定でクエリ文字列を保持が有効な場合、
http://example.com/about?q=termへのリクエストはhttps://example.com/newpage?q=termにリダイレクトされます。クエリ文字列を保持が無効な場合、同じリクエストはhttps://example.com/newpageにリダイレクトされます。
-
-
パスサフィックスを保持(デフォルト:true)
-
最終ターゲットURLがURLリダイレクトのソースURLに一致しなかったリクエストパスの部分を含むかどうかを定義します。
-
サブパスのマッチングが有効な場合、一致しなかったパスは最終ターゲットURLにコピーされます。例えば、次のソースURLとターゲットURLを考えてみましょう:
— ソースURL:
https://example.com/a/— ターゲットURL:
https://example.com/b/ -
https://example.com/a/fooへのリクエストはhttps://example.com/b/fooにリダイレクトされます。 -
パスサフィックスを保持をfalseに設定すると、同じリクエストはリダイレクトに一致しますが、
https://example.com/b/にリダイレクトされます。
-
これらのパラメータに関する詳細情報は、URLリダイレクトパラメータを参照してください。
リクエストのURLがリスト内のURLリダイレクトに一致する条件は次のとおりです:
-
スキーム(
httpまたはhttps)がURLリダイレクト定義のソースURLと同じである。スキームがないソースURLは、httpとhttpsの両方に一致します。 -
ホスト名がURLリダイレクト定義のソースURLのホスト名と同じである。サブドメインを含むが有効な場合、リダイレクト定義のホスト名のサブドメインも一致します。
-
パスがソースURLと同じである。サブパスのマッチングが有効な場合、CloudflareはURLリダイレクトのソースURLのパスのサブパスも考慮して一致を判断します。例えば、ソースURLが
example.com/blogとして定義されたURLリダイレクトは、example.com/blog/fooやexample.com/blog/barへのリクエストにも一致します。
複数のURLリダイレクトが適用できる場合、勝つリダイレクトは次のルールによって決まります:
-
サブパスのマッチングが有効な2つのURLリダイレクトがある場合、最も特定的なパスを持つURLリダイレクトが他のURLリダイレクトに勝ちます。
ソースURLパスが/folderと/folder/subfolderの2つのURLリダイレクトがある場合、/folder/subfolder/itemのURLパスへのリクエストは、より特定的な2番目のリダイレクト(/folder/subfolder)に一致します。 -
正確なホスト名を持つURLリダイレクトは、サブドメインを含むオプションが有効なURLリダイレクトに勝ちます。
-
サブドメインを含むが有効な2つのURLリダイレクトがある場合、最も特定的なドメインを持つURLが他のURLリダイレクトに勝ちます。
ソースURLホスト名がbar.comとfoo.bar.comの2つのURLリダイレクトがある場合、qux.foo.bar.comへのリクエストは、より特定的な2番目のリダイレクト(foo.bar.com)に一致します。 -
具体的なスキームを持つURLリダイレクトは、
httpとhttpsの両方に一致するURLリダイレクトに勝ちます。