すべてのプロダクト
Search
ドキュメントセンター

CDN:ルールエンジン

最終更新日:Apr 25, 2026

ルールエンジンは、条件付きルールを設定するためのグラフィカルユーザーインターフェイスを提供します。これらのルールは、ユーザーからのリクエストに含まれるパラメーターを分析し、特定の構成が適用されるかどうかを判断します。これにより、CDN および の構成ポリシーの実行を柔軟かつ正確に制御できます。

背景情報

Alibaba Cloud CDN および コンソールでは、キャッシュ有効期限ルールやパラメーター書き換えなど、ほとんどの要件に対応する基本機能を提供しています。ただし、/example というパスを含むリクエストを特定のオリジンサーバーアドレスにルーティングするなどの特殊な要件がある場合は、カスタム構成のためにルールエンジンを使用してください。また、Alibaba Cloud CDN および では、高度な柔軟性を備えたカスタマイズが可能な EdgeScript 機能も提供しています。

機能

基本機能

基本機能 + ルールエンジン

EdgeScript

機能の実装方法

汎用的な構成

柔軟なカスタム構成

高度に柔軟なカスタム構成

利用シーン

汎用的な要件

高度なカスタム要件

完全にカスタマイズされた要件

使いやすさ(必要な技術知識)

構成の柔軟性

制限事項と注意事項

  • ドメイン名ごとに最大 50 個のルールを作成できます。

  • 各ルールには最大 20 個のサブルールを含めることができます。

  • コンソールまたは OpenAPI を使用してルールを構成する場合、正規表現マッチや正規表現不一致を含む正規表現関連のオペレーターは使用できません。ただし、既存の構成は表示可能です。これらのオペレーターを使用するには、チケットを送信するか、Edge Security Acceleration (ESA) を使用してください。

  • コンソールまたは OpenAPI を使用してルールを構成する場合、単一のドメイン名に対して、すべての機能で合計 5 回までルールを参照できます。

  • ルールは最大 3 階層までネストできます。各階層では独立した論理関係をサポートします。

  • 他の機能(例:送信リクエストヘッダー)がルールエンジンで構成されたルール条件を参照する場合、実行順序は機能構成の順序ではなく、ルール条件の優先度に従います。

ルール構文

ルールは、論理演算子で接続された 1 つ以上の条件式で構成されます。以下のセクションでは、構文について説明します。

論理演算子

同じ階層内(ネストされた条件セットを含む)の条件に対して論理判断を実行し、and および or をサポートします。

  • and:論理 AND 演算子です。すべての条件が true の場合にのみ、マッチが成功します。

  • or:論理 OR 演算子です。少なくとも 1 つの条件が true の場合にマッチが成功します。

条件式のパラメーター

基本的な条件式は、以下のパラメーターで構成されます。

パラメーター

ドメイン構成機能の条件および対応する構成パラメーター

説明

必須

条件マッチ

match

マッチ条件を指定します。

はい

論理演算子

logic

条件マッチ式の論理判断パラメーターで、値は and または or です。

はい

条件

criteria

評価対象の条件式を含む配列です。

はい

マッチタイプ

MatchType

クライアントリクエスト内の評価対象情報を指定します。

はい

マッチオブジェクト

MatchObject

マッチタイプをさらに絞り込みます。たとえば、マッチタイプがクライアント IP アドレスの場合、POP 接続 IP または XFF IP をマッチオブジェクトとして指定できます。

いいえ

マッチ演算子

MatchOperator

実行する比較を指定します。

はい

マッチ値

MatchValue

クライアントリクエストから取得した情報と比較する値です。

はい

条件の否定

negate

条件式の結果を否定するかどうかを指定します。有効な値は true および false です。

はい

大文字小文字の区別

caseSensitive

マッチ値の大文字小文字を区別するかどうかを指定します。

いいえ

ルール名

name

ルールの名前です。

はい

ステータス

status

ルールのステータスです。

はい

条件式

マッチタイプ

ドメイン構成機能の条件パラメーター

説明

マッチオブジェクト

マッチ演算子

大文字小文字の区別

Nginx 変数

プロトコル

scheme

クライアントリクエストのプロトコル(HTTP や HTTPS など)です。

該当なし

  • 等しい

  • 等しくない

  • http

  • https

該当なし

$scheme

リクエストメソッド

method

クライアントリクエストのメソッド(GET や PUT など)です。

該当なし

  • 等しい

  • 等しくない

  • get

  • put

  • post

  • delete

  • head

該当なし

$request_method

URI

uri

クライアントリクエスト URL のパスで、リクエストパラメーターは含まれません。例:/favicon.ico

該当なし

  • いずれかを含む

  • いずれも含まない

? および * のワイルドカードがサポートされています。例:/*/my_path/*。複数の値もサポートされています。

  • 大文字小文字を区別

  • 大文字小文字を区別しない

$raw_uri または $uri

ファイル名

basename

クライアントがリクエストしたファイルの名前です。例:name1

該当なし

  • いずれかを含む

  • いずれも含まない

? および * のワイルドカードがサポートされています。複数の値を入力できます。

  • 大文字小文字を区別

  • 大文字小文字を区別しない

-

ファイル拡張子

extension

クライアントがリクエストしたファイルの拡張子は、右から左に向かって最初のピリオド (.) までで識別されます。例:.mp4

該当なし

  • いずれかを含む

  • いずれも含まない

? および * のワイルドカードがサポートされています。複数の値を入力できます。

  • 大文字小文字を区別

  • 大文字小文字を区別しない

-

ホスト名

hostname

クライアントリクエストのホスト名です。リクエスト URL にホストが存在する場合はそれを使用し、そうでない場合は Host リクエストヘッダーのホストを使用します。

該当なし

  • いずれかを含む

  • いずれも含まない

リクエストのホストです。複数の値がサポートされています。

  • 大文字小文字を区別

  • 大文字小文字を区別しない

$host または $http_host

クライアント IP アドレス

clientip

クライアントの IP アドレスです。値は IPv4 アドレス(例:1.1.X.X)、IPv6 アドレス(例:240e:95c:3004:2:3:0:0:XXX)、ネットワークセグメント(例:20.209.XXX.XXX/31)のいずれかになります。

  • POP 接続 IP

  • XFF IP

説明

POP 接続 IP および XFF IP の詳細については、「IP アドレス検証モード」をご参照ください。

  • いずれかを含む

  • いずれも含まない

IPv6 アドレス(例:240e:XXX:3004:2:3:0:0:3f7)および CIDR ブロック(例:120.209.XXX.XXX/31)がサポートされています。複数の値がサポートされています。

該当なし

$remote_addr

クライアント IP バージョン

clientipVer

クライアントアドレスの IP バージョン(IPv4 または IPv6)です。

  • POP 接続 IP

  • XFF IP

説明

POP 接続 IP および XFF IP の詳細については、「IP アドレス検証モード」をご参照ください。

  • 等しい

  • 等しくない

  • v4

  • v6

該当なし

-

インターネットサービスプロバイダー (ISP)

geolocation

クライアント IP アドレスが属する ISP です。

  • POP 接続 IP

  • XFF IP

説明

POP 接続 IP および XFF IP の詳細については、「IP アドレス検証モード」をご参照ください。

  • いずれかを含む

  • いずれも含まない

ドロップダウンリストから ISP を選択するか、文字を入力してオプションをフィルターできます。ID または名前によるあいまい検索がサポートされています。複数の値がサポートされています。

該当なし

$ip_isp_id

IP ジオロケーション

geolocation

クライアント IP アドレスの地理的位置です。

  • POP 接続 IP

  • XFF IP

説明

POP 接続 IP および XFF IP の詳細については、「IP アドレス検証モード」をご参照ください。

  • いずれかを含む

  • いずれも含まない

ドロップダウンリストから位置を選択するか、文字を入力してオプションをフィルターできます。ID または名前によるあいまい検索がサポートされています。複数の値がサポートされています。

該当なし

$ip_country_id

リクエストパラメーター

querystring

リクエスト URL のパラメーターです。

パラメーター名を入力します。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれも含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

? および * のワイルドカードを使用でき、複数の値を入力できます。

  • 大文字小文字を区別

  • 大文字小文字を区別しない

$arg_{name}

リクエストヘッダー

header

クライアントリクエストのヘッダーです。

パラメーター名を入力するか、ドロップダウンリストからパラメーターを選択します。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれも含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

複数の値がサポートされています。

  • 大文字小文字を区別

  • 大文字小文字を無視

$http_{name}

Cookie

cookie

クライアントリクエストの Cookie です。

Cookie 名を入力します。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれも含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

? および * のワイルドカードがサポートされています。複数の値を入力できます。

  • 大文字小文字を区別

  • 大文字小文字を区別しない

$cookie_{name}

User-Agent

useragent

クライアントリクエストの User-Agent ヘッダーです。

該当なし

  • いずれかを含む

  • いずれも含まない

ドロップダウンリストから値を選択するか、UA 値(例:*Chrome/25*)を直接入力できます。入力では ? および * のワイルドカードがサポートされており、複数の値を入力できます(UA は最大 32 個まで構成できます。この数を超えると、構成された UA は有効になりません)。

  • 大文字小文字を区別

  • 大文字小文字を区別しない

$http_user_agent

Range バケット

range

クライアントリクエストの指定されたパーセントをマッチします。

該当なし

  • 等しい

  • 等しくない

パーセント値を入力します。

該当なし

-

時間

time

クライアントリクエストが発生する時刻です。時刻は UTC + 08:00 タイムゾーンです。例:09:10~14:22

該当なし

  • いずれかを含む

  • いずれも含まない

時間範囲(例:09:10~14:22)を入力します。これは 09:10 から 14:22 までの期間を表します。

該当なし

-

Nginx 変数

ngxvar

前述の変数が要件を満たさない場合は、Nginx 変数を使用できます。詳細については、Nginx 公式ドキュメントをご参照ください。

ドロップダウンリストから変数を選択するか、変数名を入力します。連結もサポートされています(例:$region:$isp)。

  • 存在する

  • 存在しない

  • いずれかを含む

  • いずれも含まない

  • より大きい

  • 以上

  • より小さい

  • 以下

複数の値がサポートされています。

該当なし

${name}

IP アドレス検証モード

ルールエンジンには 2 種類の IP アドレス検証モードがあります。選択したモードによって、CDN/ のポイントオブプレゼンス (POP) がクライアント IP アドレスを識別する方法が異なります。

  • POP 接続 IP:クライアントが CDN ノードに接続するために使用する IP アドレスをマッチします。クライアントと CDN ノードの間にプロキシサーバーが使用されている場合、POP 接続 IP はプロキシサーバーの IP アドレスになります。

  • XFF IP:このモードでは、x-forwarded-for リクエストヘッダーの最も左側の IP アドレスをマッチします。XFF IP は、クライアントと CDN ノードの間にプロキシサーバーが使用されているかどうかに関係なく、常にクライアントの実際の IP アドレスになります。

検証モードの選択は、クライアントリクエストが CDN/ POP に到達する前にプロキシサーバーを通過するかどうかによって異なります。

CDN ノード上のルール条件を参照する機能の実行場所も、「IP アドレス検証モード」の選択に影響することに注意してください(オリジン設定に関連し L2 ノードで有効になる機能の場合、ユーザーのリクエストが通過する L1 ノードは中間プロキシサーバーと同等になります)。

例:クライアントの実際の IP アドレスが 10.10.10.10、プロキシサーバーの IP アドレスが 192.168.0.1 であると仮定します。

  • プロキシサーバーなしの場合:

    • x-forwarded-for リクエストヘッダーの値は 10.10.10.10 です。

    • 実際のクライアント IP(x-forwarded-for リクエストヘッダーの左端の IP) = クライアントが CDN ノードに接続するために使用する IP アドレス = 10.10.10.10 です。

  • プロキシサーバーありの場合:

    • ユーザーのリクエストにおける x-forwarded-for リクエストヘッダーの値は 10.10.10.10,192.168.0.1 です。

    • 実際のクライアント IP(x-forwarded-for リクエストヘッダーの最も左側の IP アドレス)は 10.10.10.10 です。

    • クライアントから CDN ノードへの接続 IP = プロキシサーバー IP = 192.168.0.1 です。

    • 元のクライアントの IP アドレスは、CDN/ POP 接続 IP と同一ではありません。

特定の地域の一部の ISP は、クライアントにプライベート IP アドレスを割り当てることがあります。その結果、CDN/ POP がプライベート IP アドレスからのリクエストを受信することがあります。

説明

プライベート IP アドレスの範囲は次の 3 つです。

  • クラス A:10.0.0.0 ~ 10.255.255.255、サブネットマスク 10.0.0.0/8

  • クラス B:172.16.0.0 ~ 172.31.255.255、サブネットマスク 172.16.0.0/12

  • クラス C:192.168.0.0 ~ 192.168.255.255、サブネットマスク 192.168.0.0/16

マッチ演算子

演算子

ドメイン名構成機能の 条件 構成パラメーター

説明

等しい

matchOperator パラメーターが equals に設定されています。

変数がマッチ値と完全に一致する場合にのみ、条件が満たされます。

等しくない

matchOperator パラメーターが equals に設定され、negate パラメーターが true に設定されています。

存在する

matchOperator パラメーターが exists に設定されています。

変数が存在する(または存在しない)場合に条件が満たされます。

存在しない

matchOperator パラメーターが exists に設定され、negate パラメーターが true に設定されています。

いずれかを含む

matchOperator パラメーターが contains に設定されています。

変数に指定された一致値のいずれかが含まれている(または含まれていない)場合、条件を満たします。一致値は最大 32 個まで指定できます。

包含マッチには次の 2 種類があります。

  • 完全一致:変数が指定された値と完全に一致する必要があります。たとえば、値が a の場合、変数も a である必要があります。

  • ワイルドカードマッチ:* をワイルドカードとして使用できます。サポートされるパターンには a**a*a* があり、それぞれ abc、bca、bcabc にマッチします。

いずれも含まない

matchOperator パラメーターが contains に設定され、negate パラメーターが true に設定されています。

より大きい

matchOperator パラメーターが gt に設定されています。

つまり、> です。

より小さい

matchOperator パラメーターが lt に設定されています。

つまり、<

以上

matchOperator パラメーターが ge に設定されています。

つまり、>= です。

以下

matchOperator パラメーターが le に設定されています。

つまり <= です。

正規表現マッチ

matchOperator パラメーターが regex に設定されています。

システムは、マッチ値を正規表現として使用して変数を評価します。

説明

コンソールまたは API オペレーションを呼び出して、正規表現マッチ正規表現不一致 を含む正規表現オペレーターを使用するルールを構成することはできません。これらのオペレーターを使用する既存のルールを表示することのみ可能です。正規表現オペレーターを使用するルールを作成または変更するには、チケットを送信するか、Edge Security Acceleration (ESA) を使用してください。

正規表現不一致

matchOperator パラメーターが regex に設定され、negate パラメーターが true に設定されています。

ワイルドカード

ワイルドカード

説明

?

1 文字にマッチします。

*

0 文字以上の任意の文字にマッチします。

条件付き機能

カテゴリ

機能

基本構成

条件付きオリジンサーバの構成

キャッシュ設定

CDN キャッシュ有効期限の構成

送信レスポンスヘッダーの変更

URL リライト

カスタムキャッシュキー

オリジン設定

送信リクエストヘッダーの変更

受信レスポンスヘッダーの構成

オリジンフェッチパラメーターのリライト

各オリジンのオリジンホスト

アクセス制御

リファラーブラックリスト/ホワイトリスト

URL 署名

IP ブラックリスト/ホワイトリスト

User-Agent ブラックリスト/ホワイトリスト

パフォーマンス最適化

パラメーターの無視

動画設定

Range オリジンフェッチの構成

トラフィック速度制限

個別リクエストのトラフィック速度制限の構成

操作手順

  1. CDN コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、ドメイン名 をクリックします。

  3. [ドメイン名] ページで、対象のドメイン名を見つけ、[操作] 列の [管理] をクリックします。

  4. ドメインの左側ナビゲーションウィンドウで、ルールエンジン をクリックします。

  5. ルールの追加 をクリックします。

  6. [ルールの追加] ページで、[ルール名] とルールの内容を設定します。

  7. 送信 をクリックします。