表現
Rules言語は、単純な表現と複合的な表現の2種類の表現をサポートしています。
単純な表現は、HTTPリクエストからの値を表現で定義された値と比較します。例えば、この単純な表現はMicrosoft Exchange Autodiscoverリクエストに一致します:
http.request.uri.path matches "/autodiscover\.(xml|src)$"単純な表現は以下の構文を持ちます:
<field> <comparison_operator> <value>ここで:
-
Fieldsは、HTTPリクエストに関連付けられたプロパティを指定します。
-
Comparison operatorsは、表現が
trueを返すために、値が実際のリクエストデータとどのように関連する必要があるかを定義します。 -
Valuesは、フィールドに関連付けられたデータを表します。ルールを評価する際、Cloudflareはこれらの値をリクエストから取得した実際のデータと比較します。
複合的な表現は、andのような論理演算子を使用して、2つ以上の表現を1つの表現に結合します。
例えば、この表現はand演算子を使用して、ポート80または443ではないwww.example.comへのリクエストをターゲットにします:
host eq www.example.com and not cf.edge.server_port in {80 443}複合的な表現は以下の一般的な構文を持ちます:
<expression> <logical_operator> <expression>複合的な表現を使用すると、洗練された、高度にターゲットを絞ったルールを生成できます。
The maximum length of a rule expression is 4,096 characters.
この制限は、視覚的なExpression Builderを使用して表現を定義する場合でも、Expression Editorで手動で表現を書く場合でも適用されます。
表現の中で以下のRules言語機能も使用できます:
-
Grouping symbolsは、一緒に評価されるべき表現を明示的にグループ化することを可能にします。
-
Functionsは、表現内の値を操作および検証することを可能にします。