コンテンツにスキップ

表現

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は、表現内の値を操作および検証することを可能にします。