12-4 条件文の書き方(expression)
前の節で、自分の紙には条件と処置を書くと見ました。この節は、その条件の書き方だけを扱います。
条件は、日本語の文章ではなく決まった形で書きます。書き方が決まっているので、機械が迷わず判定でき、あとから読む人も同じ意味に読めます。
ここでは、条件文の形、見る欄、比べ方、つなぎ方の順に見ます。
Learning goals
この節でできるようになること
- 条件文が三つの部品でできていることを言える
- 用件票のどの欄を見られるかを説明できる
- 代表的な比べ方を三つ挙げられる
- 条件をつなぐときの読む順を説明できる
1. 条件文の形
Section titled “1. 条件文の形”検問の紙の条件欄には、決まった形の 1 行を書きます。「どの欄を見て、どう比べて、何と照らすか」です。
Cloudflare では、この書き方を Rules language と呼びます。公式は、通信を調べる道具で広く使われている書式をもとにしており、狙った用件票(HTTP のリクエスト)だけを正確に指せると説明しています。
公式は条件文を二つに分けています。1 行だけの Simple expressions と、複数の行をつないだ Compound expressions です。1 行の形は次のとおりです。
<field> <comparison_operator> <value>読めなくても大丈夫です。左から順に「見る欄」「比べ方」「照らす値」で、この三つが揃うと 1 つの条件になります。
なお公式は、条件文の長さは最大 4,096 文字、1 つのルールに書ける正規表現は最大 64 個だと定めています。画面では Expression Builder(選んで組む方式)と Expression Editor(直接書く方式)のどちらでも書けます。
つまり、条件文は三つの部品でできた 1 行です。
2. 見る欄
Section titled “2. 見る欄”用件票には、いくつもの欄があります。どの欄を見るかを最初に決めます。
Cloudflare では、この欄を field(項目)と呼びます。公式は項目を、届いた用件の基本的な性質を表す Request fields、計算して求めた値を表す Dynamic fields、返す答えの性質を表す Response fields、元の値をそのまま残す Raw fields に分けています。
よく使うのは、通路の名前を表す http.request.uri.path と、送り主を表す ip.src です。前者は「サイトのどこを見に来たか」、後者は「どこから来たか」に当たります。
用件票の欄を指さしています。まずどの欄を見るかを決め、それから比べ方を選びます。
つまり、項目とは「用件票のどの欄を見るか」の指定です。
3. 比べ方
Section titled “3. 比べ方”欄を決めたら、その値と何をどう比べるかを決めます。「ぴったり同じ」なのか「一部を含む」のかで結果が変わります。
Cloudflare では、これを comparison operators(比べ方)と呼びます。公式の一覧から、日常でよく使う三つを挙げます。
eq(同じ)
contains(含む)
三つめが in です。公式は、値の集まりや名簿の中にあるときに当てはまる比べ方だと説明しており、住所の範囲を扱うときにも使います。
同じ・含む・名簿にある、の三つの札が並んでいます。欄ごとに使える札は決まっています。
つまり、比べ方は「同じか」「含むか」「名簿にあるか」から選ぶのが基本です。
4. つなぎ方
Section titled “4. つなぎ方”条件が一つで足りることは多くありません。「この通路で、かつ、この送り主」のようにつなぎます。
Cloudflare では、つなぐ言葉を logical operators と呼びます。and(かつ)、or(または)、not(〜でない)などがあり、公式の例は次の形です。
http.host eq "www.example.com" and not cf.edge.server_port in {80 443}つなぐと、読む順が問題になります。公式は order of precedence(読む順の決まり)を定めており、not が 1 番目、and が 2 番目、or が 4 番目です。and は or より先に読まれます。
読む順を自分で決めたいときは、Grouping symbols(括弧)で囲みます。囲んだ中が先に読まれるので、意図が誤解されません。
二つの条件が「かつ」でつながり、括弧でまとめられています。括弧の中が先に読まれます。
つまり、条件を二つ以上つなぐときは、括弧を付けて読む順を明示します。
Cloudflare Lab での使われ方
Section titled “Cloudflare Lab での使われ方”ここで紹介した条件文が、いま読んでいる Cloudflare Lab でどう使われるかを見ます。
Cloudflare Lab では、通路の名前を見る http.request.uri.path を使い、置いていない管理画面の通路に来た用件だけを絞り込む条件文を 1 行書く予定です。ドメインはできたばかりなので、実際に書くのはこれからです。実測(書いた条件文、当てはまった件数)は実装後に追記します。
つまずきやすいところ
Section titled “つまずきやすいところ”この節のまとめ
Section titled “この節のまとめ”- 条件文は「見る欄・比べ方・照らす値」の三つでできた 1 行です。
- 見る欄は用件票の項目で、通路の名前や送り主などを選べます。
- 二つ以上つなぐときは
andやorを使い、括弧で読む順を明示します。
この節で出てきた言葉を、つながりの順に並べると次のようになります。
図のラベル: 条件文 expression / 見る欄 field / 比べ方 comparison operator / 照らす値 value / 1 行の条件 Simple expressions / and / or でつなぐ Compound expressions / 括弧で読む順を決める Grouping symbols
次の章では、同じ人の来店回数を数えて制限する仕組みを見ます。
この節のチェック
© 2026 osdse