ページルール
条件に一致する URL に対して、キャッシュ、レート制限、レスポンスヘッダー、オリジン SSL、リダイレクトを上書きします。
ページルールでは、特定の条件を満たす URL を個別に処理できます。たとえば、静的アセットのキャッシュ期間を延ばしたり、管理エリアのキャッシュを無効にしたり、古いパスを新しいアドレスにリダイレクトしたりできます。
CDN → CDN ドメインに移動し、ドメインを開いて ページルールを選択します。コンソールの URL は /cdn/domains/<domain>/rules です。
一部のページルールアクションは、まだ順次提供中です。このページでは、現在エッジが適用するアクションのみを記載しています。コンソールには他の選択肢も表示されますが、保存してもまだ効果はありません。
ルールの構成
| フィールド | 説明 |
|---|---|
| 名前 | 「静的アセットのキャッシュ」など、ルールを識別するためのラベルです |
| 優先度 | 1 から 999 まで指定できます。デフォルトは 100 です |
| 有効 | 無効なルールは保持されますが、適用されません |
| 条件 | **すべて一致(AND)またはいずれか一致(OR)**で結合された 1 つ以上の条件です |
| アクション | リクエストが一致した場合に適用する 1 つ以上のアクションです |
URL の一致条件
ページルールは、ファイアウォールルールと同じ条件エンジンを使用します。URL の指定には、次のフィールドと演算子がよく使用されます。
| フィールド | 例 |
|---|---|
| パス / URI パス | 前方一致 /static/; 正規表現 ^/blog/\d+ |
| ファイル拡張子 | リストに含まれる jpg, png, css, js |
| Host | 等しい img.example.com(ドメインに複数のホスト名がある場合に便利です) |
| クエリ文字列 | パラメーター名 utm_source、演算子 存在する |
| ヘッダー / Cookie | 名前を指定し、その値を照合します |
| HTTPS かどうか、HTTP メソッド、クライアント IP、国コード、ASN、User-Agent、Referer | リクエストの属性で一致条件を絞り込みます |
使用できる演算子は、等しい、等しくない、含む、含まない、前方一致、後方一致、正規表現、リストに含まれる、リストに含まれない、より大きい・小さい(以上・以下を含む)、存在する、存在しないです。
パスの照合では、大文字と小文字が区別されます。ディレクトリを照合するには、前方一致を使用してください。正規表現よりも分かりやすく、正しく設定しやすくなります。
有効なアクション
| アクションパネル | 適用される設定 | 動作 |
|---|---|---|
| キャッシュ | キャッシュモードの無効、キャッシュ時間 | 無効では、一致するリクエストがエッジキャッシュをバイパスします。キャッシュ時間は、キャッシュ可能なレスポンスのエッジキャッシュ TTL を置き換えます。Set-Cookie や no-store を含むなど、キャッシュできないレスポンスは引き続きキャッシュされません |
| レート制限 | リクエスト数、時間枠、キー(IP アドレス、国、URI パス) | 上限を超えたリクエストには 429 を返します。ヘッダーまたは Cookie でレート制限する場合は、代わりにファイアウォールルールを使用してください |
| WAF | 無効化スイッチ | 一致するリクエストの WAF 検査をスキップします。信頼できるコールバック URL に便利です。ここでルールセットを選択しても効果はありません |
| カスタムヘッダー | 名前と値 | HTTP レスポンスヘッダーを追加または置換します |
| SSL/TLS | オリジン SSL モード、HTTPS の強制(クライアント) | これらの URL でオリジンに接続する際の SSL モード(オフ、フレキシブル、フル、厳格)を変更します。HTTPS の強制が有効な場合、HTTP リクエストには同じ URL の HTTPS への 301 リダイレクトを返します |
| リダイレクト | 転送先 URL とステータスコード(301、302、307、308) | オリジンに接続せず、固定の転送先 URL へのリダイレクトを返します |
次の設定は、まだ有効になりません。代わりにドメイン自体の各ページで設定してください。
- キャッシュパネル: キャッシュ時間のモード、クエリ文字列の処理、キャッシュホストモード、デバイス・国・言語によるキャッシュの区別、古いコンテンツの配信。これらは キャッシュページで設定してください。
- ブラウザーキャッシュパネルは、まだ順次提供中です。ブラウザーキャッシュはキャッシュページで設定してください。
- 最適化パネル(Gzip、Brotli、最小化)。これらは 最適化ページで設定してください。
ルールの作成
- ページルールで ルールを追加をクリックします。
- 名前を入力し、必要に応じて優先度を変更して、有効をオンのままにします。
- 一致条件で条件を追加し、すべて一致またはいずれか一致を選択します。
- 実行アクションで、使用する各アクションパネルの 有効化をクリックし、設定を入力します。パネルを削除するには、削除をクリックします。
- OK をクリックして保存します。ルールは数秒から 1 分以内にエッジで有効になります。
条件とアクションがそれぞれ 1 つ以上ないと、ルールを保存できません。
例: 静的アセットを 7 日間キャッシュする
- 条件: ファイル拡張子がリストに含まれる
jpg,png,css,js - アクション: キャッシュ、モードは有効、キャッシュ時間は
604800
例: 管理エリアをキャッシュしない
- 条件: パスが前方一致
/admin - アクション: キャッシュ、モードは無効
複数のルールに一致する場合
1 つのリクエストが複数のページルールに一致することがあり、一致するすべてのルールのアクションがまとめて適用されます。リダイレクトまたは HTTPS の強制は処理を即座に終了するため、それ以降のルールは実行されません。
異なる 2 つのキャッシュ時間など、別々のルールで同じ URL に競合する値を設定しないでください。条件が重ならないようにするか、ルールを 1 つにまとめてください。
ルールのクォータ
プランによっては、作成できるページルール数に上限があります。上限がある場合、ページ上部のバナーに「ルール利用枠:3/5」などの使用状況が表示されます。上限に達したら、不要なルールを削除するか、プランをアップグレードしてください。
API
ページルールのエンドポイントは /api/user/cdn/rules の配下にあります。
curl -X POST "https://api.yeap.cloud/api/user/cdn/rules/create" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"domain_id": 123,
"name": "Static assets 7d",
"priority": 100,
"enabled": true,
"settings": {
"matcher": {"op": "and", "conditions": [
{"collection": "EXTENSION", "op": "in", "var": ["jpg", "png", "css", "js"]}
]},
"action": {"cache": {"enabled": "on", "ttl": 604800}}
}
}'その他のエンドポイント:
- ルールの一覧取得:
GET /api/user/cdn/rules?domain_id=123 - ルールの更新:
POST /api/user/cdn/rules/update。ボディにidを指定します - ルールの削除:
DELETE /api/user/cdn/rules/delete?id=<id>