コンテンツにスキップ

ダッシュボードでの編集

Cloudflareダッシュボードでは、を編集するための2つのオプションがあります。

  • Expression Builder: ドロップダウンリストを使用して式を作成でき、式を定義するための視覚的アプローチを強調します。
  • Expression Editor: 値を変換および検証するための記号や関数のグループ化などの高度な機能をサポートするテキスト専用インターフェースです。

一般的に、Expression BuilderとExpression Editorの間を行き来することができます。ただし、Expression Builderはネストされた式生文字列構文をサポートしていません。

Expression Builder

Expression Builderを使用すると、ドロップダウンリストを使用してルール式を視覚的に作成し、フィールド値を入力して1つまたは複数のサブ式を定義できます。

式を視覚的に定義するために使用されるExpression Builderインターフェース

Expression Previewは、テキストで式を表示します:

(ip.geoip.country ne "GB")

Expression Builderは、文字列リテラル内のバックスラッシュ(\)およびダブルクォート(")の特殊文字を自動的にエスケープします。

Expression Editor

Expression Editorは、ルール式を定義するためのテキスト専用インターフェースで、Cloudflareのルール言語の全仕様をサポートし、括弧をグループ化記号として使用します。

高度な式を入力するために使用されるExpression Editor

Expression Editorにアクセスするには、Expression Previewの隣にあるEdit expressionを選択します:

Expression Editorに切り替えるためにCreate custom ruleページでEdit expressionを選択

Expression EditorからExpression Builderに戻るには、Use expression builderを選択します。

特殊文字のエスケープ

引用文字列構文を使用する式では、文字列リテラル内のすべてのバックスラッシュ(\)およびダブルクォート(")文字はエスケープする必要があります。視覚的なExpression Builderは、これらの特殊文字を自動的にエスケープし、バックスラッシュを前置することで\"がそれぞれ\\\"になります。

Expression Builderを使用して構築された式は現在、引用文字列構文を使用しています。この構文に従って正規表現を入力する場合、追加のエスケープが必要になることがあります — 詳細については、Ruleset Engineドキュメントの引用文字列構文を参照してください。

複雑な正規表現を指定するには、CloudflareはExpression Editorを使用し、生文字列構文を使用して式を入力することを推奨します。これにより、エスケープが少なくて済みます。

ネストされた式の作成

Expression Editorは、括弧をグループ化記号としてサポートしています。括弧を使用して式を明示的にグループ化およびネストし、ターゲットを絞った式を作成します。

次のルール式は、マレーシア以外の訪問者からのリクエストをマッチさせ、WordPressのURIパスにアクセスしようとするものです。

((http.request.uri.path contains "/xmlrpc.php") or (http.request.uri.path
contains "/wp-login.php") or (http.request.uri.path contains "/wp-admin/"
and not http.request.uri.path contains "/wp-admin/admin-ajax.php" and not
http.request.uri.path contains "/wp-admin/theme-editor.php")) and
ip.geoip.country ne "MY"

上記のようなネストされた式をサポートしているのはExpression Editorのみです。Expression Editorでネストされた式を持つルールを作成し、Expression Builderに切り替えようとすると、式がビルダーでサポートされていないことを警告するダイアログが表示されます。Discard changesを選択してExpression Builderに切り替えるか、Cancelを選択してエディタで作業を続けるように促されます。

式の検証

Cloudflareは、保存する前にすべての式を検証します。したがって、式にエラーがある場合、Cloudflareダッシュボードにエラーメッセージが表示されます。以下のようなメッセージが表示されることがあります:

Filter parsing error (1:313): ((http.request.uri.path contains
"/xmlrpc.php") or (http.request.uri.path contains "/wp-login.php") or
(http.request.uri.path contains "/wp-admin/" and not
http.request.uri.path contains "/wp-admin/admin-ajax.php" and not
http.request.uri.path contains "/wp-admin/theme-editor.php")) and
ip.geoip.country ne "MY") ^ unrecognised input