Skip to content

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

ルール

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

ルールは、フィルターと、そのフィルターに一致する受信リクエストに対して行うアクションを定義します。

  • ルールの (フィルター式とも呼びます)は、ルールの適用範囲を定義します。
  • ルールの アクション は、式に一致したときに何が起きるかを定義します。

ルール式は Rules language で定義します。

たとえば、4 つのルール(R1、R2、R3、R4)を持つ次のルールセットを考えます。ある受信リクエストに対して、最初の 2 つのルールの式がリクエストのプロパティに一致します。そのため、これらのルールのアクションが実行されます(それぞれ ExecuteLog)。最初のルールのアクションはマネージドルールセットを実行するため、そのマネージドルールセット内のすべてのルールが評価されます。2 番目のルールのアクションは、現在のフェーズに関連するイベントをログに記録します。ルール 3 と 4 の式には一致しないため、それらのアクションは実行されません。どのルールもリクエストをブロックしないため、リクエストは次のフェーズへ進みます。

ルール実行シナリオの例。4 つのルールを持つルールセットを定義し、最初のルールがマネージドルールセットを実行します。

ルールは、特定の Cloudflare 製品を通じて追加機能を持てます。ルール式で使えるフィールドが増えたり、異なるアクションを実行したり、あるフェーズで追加の動作を設定したりできます。

ルールの評価

ルールを評価するとき、Cloudflare はリクエスト / レスポンスのプロパティの値、または フィールド から得た派生値を、ルールのフィルター式で定義した値と比較します。

式全体が true になるとルールが一致し、Cloudflare はルールに設定した アクション を実行します。式が false になるとルールは一致せず、設定したアクションは適用されません。

一般的に、終了しないアクション では、同じ フェーズ 内のルールによる最後の変更が優先されます(後のルールは、前のルールによる変更を上書きできます)。一方、終了アクション(BlockRedirect、またはチャレンジアクションのいずれか)では、ルールの評価が止まり、そのアクションがすぐに実行されます。

たとえば、Redirect アクションを持つ複数のルールが一致した場合、Cloudflare は常に最初に一致したルールの URL リダイレクトを使います。また、異なる Cloudflare 製品(Single Redirects と Bulk Redirects)で URL リダイレクトを設定している場合、ルールが一致すれば、先に実行される製品が適用されます(この場合は Single Redirects)。

製品の実行順序については、フェーズ一覧 を参照してください。

ルールのフィルター式に true を使うと、現在の フェーズ(ゾーンまたはアカウント)で「すべての受信リクエストにルールを適用する」ことを意味します。

ルール評価中のフィールド値

あるリクエスト / レスポンスのルールを評価しているあいだ、すべてのリクエストおよびレスポンス フィールド の値は、各フェーズ内で不変です。ただし、フェーズをまたぐとフィールド値は変わることがあります。

例:

  • URL rewrite rule #1 がリクエストの URI パスまたはクエリ文字列を更新しても、URL rewrite rule #2 はこれらの先行する変更を考慮しません。
  • リクエストヘッダー変換ルール #1 が HTTP リクエストヘッダーの値を設定しても、リクエストヘッダー変換ルール #2 はこの新しい値を読んだり評価したりできません。
  • URL rewrite rule がリクエストの URI パスまたはクエリ文字列を更新すると、http.request.urihttp.request.uri.*http.request.full_uri フィールドは、http_request_transform フェーズ(URL Rewrite Rules が実行されるフェーズ)より後のフェーズで異なる値になります。

役に立ちましたか?