Rules language は、単純式と複合式の 2 種類の式をサポートします。
単純式は、HTTP リクエストの値と、式で定義した値を比較します。たとえば、次の単純式は Microsoft Exchange Autodiscover リクエストに一致します。
http.request.uri.path matches "/autodiscover\.(xml|src)$"単純式の構文は次のとおりです。
<field> <comparison_operator> <value>各要素の意味は次のとおりです。
-
フィールド は、HTTP リクエストに関連するプロパティを指定します。
-
比較演算子 は、式が
trueを返すために、値が実際のリクエストデータとどう関係する必要があるかを定義します。 -
値 は、フィールドに関連するデータを表します。ルールを評価するとき、Cloudflare はこれらの値をリクエストから得た実際のデータと比較します。
複合式は、and などの 論理演算子 で、2 つ以上の式を 1 つの式にまとめます。
たとえば、次の式は and 演算子を使い、ポート 80 または 443 ではない www.example.com へのリクエストを対象にします。
http.host eq "www.example.com" and not cf.edge.server_port in {80 443}複合式の一般的な構文は次のとおりです。
<expression> <logical_operator> <expression>複合式を使うと、高度で対象を絞ったルールを作れます。
ルール式の最大長は 4,096 文字です。
この上限は、式を視覚的な Expression Builder で定義する場合も、Expression Editor で手動で書く場合も適用されます。
各ルールの式に含められる正規表現は最大 64 個です。この上限は、Rules language を使うすべてのルール種類に適用されます。
この上限を超えるルールは作成も更新もできません。上限を超えている既存ルールは動き続けますが、式を簡略化するまで変更できません。
式では、Rules language の次の機能も使えます。