Skip to content

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

ダッシュボードで式を編集する

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

Cloudflare ダッシュボードでは、 の編集方法が 2 つあります。

  • Expression Builder: ドロップダウンリストを使って式を作成します。視覚的に式を定義できます。
  • Expression Editor: テキストのみのインターフェースです。グループ化記号や、値の変換・検証用の関数など、高度な機能に対応します。

通常、Expression Builder と Expression Editor は行き来できます。ただし、Expression Builder は次のような高度な機能に対応していません。

編集中の式で使えるフィールドの一部が、ビルダーに表示されないこともあります。

エディターで高度な式機能を使うか、一覧にないフィールドを入力した場合、Expression Builder へ切り替えられないことがあります。式がビルダー未対応である旨の警告ポップアップが出ます。続行するには、エディターでの変更を破棄するか、切り替えをキャンセルしてエディターでの作業を続けます。

Expression Builder

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

式を視覚的に定義する Expression Builder のインターフェース

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

(ip.src.country ne "GB")

Expression Builder は、引用符付き文字列構文 を使うとき、文字列リテラル内のバックスラッシュ(\)と二重引用符(")の特殊文字を 自動でエスケープ します。

Expression Editor

Expression Editor は、ルール式を定義するテキスト専用インターフェースです。Cloudflare の Rules 言語 の仕様全体に対応し、グループ化記号としての括弧も含みます。

高度な式を入力する Expression Editor

Expression Editor を開くには、Expression Preview の横の Edit expression を選びます。

カスタムルール作成ページで Edit expression を選び、Expression Editor へ切り替える

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

特殊文字をエスケープする

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

# Example of an expression with a " character written using quoted string syntax
http.request.uri.path eq "/foo\"bar"

Expression Builder は 引用符付き文字列構文raw 文字列構文 の両方に対応します。raw 文字列構文には特殊文字やエスケープシーケンスがないため、終了区切りまでの文字はそのまま解釈されます。

# Example of an expression with a " character written using the raw string syntax
http.request.uri.path eq r#"/foo"bar"#

ダッシュボードの Operator ドロップダウンで Matches regex を選ぶと、式プレビューは自動で raw 文字列構文を使います。それ以外では、Expression Editor に切り替えて raw 文字列構文の文字列を手動入力する必要があることがあります。この場合、Expression Builder へ戻しても、エディターで使った構文は維持されます。

引用符付き文字列構文正規表現 を書く場合、追加のエスケープが必要になることがあります。詳細は 引用符付き文字列構文 を参照してください。

複雑な正規表現を書くときは、エスケープが少なくて済む raw 文字列構文 を推奨します。

入れ子の式を作成する

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.src.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.src.country ne "MY") ^ unrecognised input

役に立ちましたか?