Page Rulesがリクエストが定義されたURLパターンの一つにリクエストが一致する時はいつでも特定のアクションがトリガーされます。ページルールの作成方法と利用できる様々な設定について説明します。
本記事は以前、 Page Rules Tutorial と Is There a Page Rules Tutorial?というタイトル名で掲載されていました。
概要
ページルールを定義し、URLパターンが一致するたびに、複数のアクションをトリガーすることができます。Page Ruleアプリは、Cloudflareのダッシュボードで利用できます。
許可されるページルールデフォルト数は、以下の通り、ドメインプランによって異なります。
プラン | 許可されるページルール |
無料 | 3 |
Pro | 20 |
Business | 50 |
Enterprise | 100 |
Freeプラン、Proプラン、Businessプランのドメインに対する(最大100まで)追加のルールを購入できます。
はじめに
二つの基本的なページルールの動作を理解することが、重要です:
- 優先度が高く、一致しているページルールだけがリクエストに対して有効となります。
- Cloudflareのダッシュボードにおいて、ページルールが降順で優先順位が付けられます。最も順位が高いルールが最上部に表示されます。
次の形式に基づいて、ページルールはURLパターンに一致します(四つのセグメントで構成):
<scheme>://<hostname><:port>/<path>
この四つのセグメントに分かれているURLの例は以下のようになります:
https://www.example.com:443/image.png
スキームとポートのセグメントは任意です。省略した場合、スキームが http://プロトコルとhttps:// プロトコル両方と一致します。ポートを特定しない場合、ルールはポート全てと一致します。
最後に、ページルールはいつでも無効にできます。ルールが無効になってる間、アクションはトリガーされませんがルールはPage Ruleアプリに表示され、編集可能です。そして、ドメインで許可されるルール数に対してカウントされます。下書きとして保存オプションでデフォルトで無効になるページルールを作成します。
ページルールを作成
ページルール作成の手順:
1. Cloudflareダッシュボードにログインします。
2. ページルールを追加するドメインを選択します。
3. Page Ruleアプリをクリックします。
4. Page Ruleで、Page Ruleの作成をクリックします。 <あなたのドメイン>のPage Ruleを作成ダイアログが開いています。
5. URLが一致する場合で、URL、またはルールと一致するべきURLパターンを入力してください。ワイルドカード一致についての詳細はこちらで
6.次に、そして、設定は:で、+ Add a Settingをクリックし、ドロップダウンから希望する設定を選択します。ルール一つに対して設定を二つ含めることができます。セッティングについては以下の概要をご覧ください。
7. 順序のドロップダウンで、希望する順序を指定します:最初、最後またはカスタム。
8. 保存するには、次のオプションの一つをクリックします:
- 下書きとして保存でルールを保存し、無効のままにします。
- 保存して配置でルールを保存し、すぐに有効にします。
ページルールの編集
既存のルールを変更するために:
1. Cloudflareダッシュボードにログインします。
2. ページルールの編集をするドメインを選択します。
3. Page Ruleアプリをクリックします。
4. Page Ruleでは、編集するルールの場所を特定します。
5. 必要な変更を行うために、次のようにします:
- ルールを有効にするか、無効にするために、On/Offを切り替える。
- URLパターン、設定、順番を変更するために、「編集」ボタンを(レンチアイコン)をクリックする。ダイアログで、変更したい情報を入力する。
- ルールを削除するために、「削除」ボタン(xアイコン)をクリックして「確認」ダイアログで OKをクリックすると確認できます。
ワイルドカードの一致と参照について
URLセグメントにあるアスタリスク記号 (*) を使って特定のパターンと一致させることができます。例えば、
example.com/t*st
一致するのは:
example.com/test
example.com/toast
example.com/trust
役に立つヒント
- httpとhttpsの両方と一致させるには、example.comとするだけです。*.example.comにする必要はありません。
- ドメインにある全ページを一致させるには、 example.com/*と書き込みます。 example.com だけでは、うまくいきません。
ワイルドカードの一致を参照
$X シンタクスを使って、後で、一致するワイルドカードを参照することができます。Xは、globパターンのインデックスを示します。したがって、$1は最初のワイルドカードの一致を表し、$2は二番目のワイルドカードの一致を表す、となります。
これは、転送 URLで特に便利なものです。例:
転送するには:
http://*.example.com/*
To:
http://example.com/images/$1/$2.jpg
このルールが一致するのは:
http://cloud.example.com/flare.jpg
これは次に転送されることになります:
http://example.com/images/cloud/flare.jpg
転送 URLで、リテラル$文字列を使うには、先頭にバックスラッシュ文字(\)を追加するとエスケープします: \$。
Page Rule設定の概要
リクエストがページルールで定義されているURLパターンと一致すると、設定でCloudflareのアクションがコントロールされます。いくつかのダッシュボードアプリで、複数のCloudflare機能を有効にも向こうにも設定を使うことができます。以下の点に注意してください:
- こうした設定は、Proドメインプラン、Businessドメインプラン、Enterpriseドメインプランのどれかが必要です。
- 複数の設定を特定し、ルールがトリガーされた時に適用されます。
- ポート 80、443、8080が、Cloudflareキャッシングが利用できる唯一のポートです。
以下は、利用可能な設定の完全リストで、Cloudflare Page Ruleで、表示される順序を示して
設定 | 説明 | プラン |
Always Online | Cloudflareキャッシングアプリの常時オンライン機能をOnまたはOffにします。詳細についてはこちら。 API、支払いページ、カートページなどキャッシュされたページに返されるべきではないサイトのセクションで、これを無効にします。 |
|
HTTPSの常時使用 | Cloudflare SSL/TLSアプリにある「Edge証明書」タブの常時HTTPSを使用する機能をOnまたはOffにします。有効にすると、301リダイレクトを通して、http://URLがhttps://に変換されます。 この選択肢がまだ表示されるなら、アクティブなEdge証明書がないということです。 |
|
Auto Minify | どのファイル拡張子が自動的に縮小されるかを示します。詳細についてはこちら。 |
|
Automatic HTTPS Rewrites | Cloudflare SSL/TLSアプリにある「Edge証明書」タブのCloudflare 自動HTTPS書き換え機能をOnまたはOffにします。詳細についてはこちら。 |
|
Browser Cache TTL(ブラウザーキャッシュTTL) | クライアントブラウザによってキャッシュされるリソースが有効な状態を維持できる時間を管理します。詳細についてはこちら。 |
|
Browser Integrity Check | 訪問者のブラウザで、通常スパナーと特定のボットに関連づけられるヘッダーを調べます。詳細についてはこちら。 |
|
Bypass Cache on Cookie | リクエストに存在するCookie名に対して正規表現が一致するオリジンサーバーからキャッシュをバイパスし、リソースをフェッチします。 この設定とenterprise-のみCache On Cookie設定から同じページルールを追加する場合、Cache On CookieはBypass Cache on Cookieより優先されます。 下記の追加詳細で、限定的な正規表現のサポートについてご覧ください。 |
|
デバイスタイプ別にキャッシュする | 訪問者のデバイスタイプに基づいて、キャッシュするコンテンツを分けます。詳細についてはこちら。 |
|
Cache Deception Armor | 静的アセットがキャッシュしておく一方で、Web キャッシュ・ディセプション・アーマー攻撃から守ります。この設定では、URLの拡張子が戻されたコンテンツ-タイプと一致しているか検証します。詳細についてはこちら。 |
|
キャッシュキー | カスタムキャッシュキーとも呼ばれています。 どのリソースをキャッシュするかを決定する際、どの変数を含めるか具体的に管理します。これによってお客様は、単にURLだけではなく他の要素にも基づいてキャッシュするものを決められます。詳細についてはこちら。 ドメインでカスタムキャッシュキーを有効にする場合、Cloudflareサポートとリクエストを提出してください。 |
|
キャッシュレベル | 選択したオプションに基づいて、カスタムキャッシングを適用します: クエリ文字列なし - クエリ文字列がない場合、キャッシュからリソースを配信する。 クエリ文字列を無視-クエリ文字列に関係なく、全員に同じリソースを配信する。 標準 - クエリ文字列を持つ静的コンテンツ全てをキャッシュする。 Cache Everything (すべてをキャッシュする)- 全てのコンテンツを静的コンテンツとして扱い、Cloudflare デフォルトでキャッシュされたコンテンツを超えて全てのファイルタイプをキャッシュします。Edge キャッシュ TTLがPage Ruleで設定していなければ、オリジンWebサーバーからのキャッシュヘッダーを尊重します。これとEdge Cache TTL が 0ではない時に組み合わせられると、 Cache Everything がオリジンWebサーバーレスポンスからCookieを削除します。 |
|
Cache on Cookie (Cookieのキャッシュ) | Cookie名に対して一致している正規表現に基づいて、Cache Everything オプション(キャッシュレベル設定)を適用します。 この設定とBypass Cache on Cookie(Cookieのキャッシュのバイパス)の両方を追加する際、 Cache On CookieはBypass Cache on Cookieより優先されます。 |
|
Disable Apps(アプリを無効化) | アクティブなCloudflare アプリが全てOffになっています。 |
|
Disable Performance(パフォーマンスを無効化) | Offにする: |
|
Railgunを無効にする | CloudflareスピードアプリのRailgun機能をOffにします。 |
|
セキュリティの無効化 | Offにする: |
|
Edge Cache TTL(エッジキャッシュTTL) | Cloudflareエッジネットワークでリソースをキャッシュする時間を特定します。 Cache LevelをCache Everythingに設定しているPage Ruleでの設定として含まれる時、Edge キャッシュ TTLは有効となります。 Edge キャッシュ TTLはレスポンスヘッダーでは表示されません。 最小Edge Cache TTLは、プランタイプによって異なります: 無料 - 2時間 |
|
メールの継続か | Cloudflare Scrape ShieldアプリにあるCloudflare Email Obfuscation(Eメールの難読化)機能をOnまたはOffにします。詳細についてはこちら。 |
|
転送 URL | HTTP 301/302 リダイレクトを使って、一つのURLを別のURLにリダイレクトします。上記のワイルドカードの一致と参照についてをお読みください。 |
|
ホストヘッダーオーバーライド | 特定のホストヘッダーを適用します。詳細についてはこちら。 |
|
IP 地理的位置情報 ヘッダー | Cloudflareは、訪問者に対応する国別コードを含むCF-IPCountryHTTPヘッダーを追加します。 |
|
Mirage | Cloudflare スピードアプリのCloudflare MirageをOnまたはOffにします。詳細についてはこちら。 |
|
Opportunistic Encryption | Cloudflare SSL/TLSアプリにある「Edge証明書」タブのCloudflare Opportunistic Encryption(便宜的暗号化)機能をOnまたはOffにします。詳細についてはこちら。 |
|
オリジンのキャッシュコントロール | オリジンのキャッシュコントロールはFreeドメイン、Proドメイン、Businessドメインにおいて、デフォルトで有効になってて、Enterpriseドメインについてはデフォルトで向こうになっています。 |
|
オリジンエラーのパススルー | オリジンサーバー から送信された問題から生成されたCloudflareエラーページをOnまたはOffにします。有効の場合、この設定はオリジンで発行されたエラーページをトリガーします。 |
|
Polish | CloudflareスピードアプリのPolish 機能からのオプションを適用します。詳細についてはこちら。 |
|
Query String Sort | クエリ文字列の並び替えをOnまたはOffにします。クエリ文字列が同じ構造の時、キャシングが向上します。詳細についてはこちら。 |
|
オーバーライドを解決 | オリジンアドレスを変更して、この設定で指定される値に変更します。詳細についてはこちら。 |
|
強いETagsを尊重する | Cloudflareキャッシュとオリジンサーバー 間のバイトごとの同等性チェックをOnまたはOffにします。詳細についてはこちら。 |
|
レスポンスバッファリング | サイト訪問者にオリジンサーバー からのファイルを転送する前に、Cloudflareがファイル全体を待機するべきかどうかをOnまたはOffにします。デフォルトで、オリジンサーバー からパケットを受け取る時に、Cloudflareがそれをクライアントに送信します。 |
|
Rocket Loader | Cloudflare SpeedアプリにあるCloudflare Rocket Loader をOnまたはOffにします。詳細情報はこちらで。 |
|
セキュリティレベル | Cloudflaree ファイアウォールアプリからSecurity Level機能のオプションを管理します。詳細についてはこちら。 |
|
サーバー側の除外 | CloudflareScrape Shieldアプリの Server Side Excludes機能をOnまたはOffにします。詳細についてはこちら。 |
|
SSL | Cloudflare SSL/TLSアプリで Edge CertificateタブのSSL 機能のオプションを管理します。詳細についてはこちら。 |
|
真のクライアントIPヘッダー | CloudflareネットワークアプリのTrue-Client-IP ヘッダー機能をOnまたはOffにします。詳細についてはこちら。 |
|
Web Application Firewall | Cloudflare ファイアウォール アプリで定義されている通り、WebアプリケーションファイアウォールルールをOnまたはOffにします。詳細についてはこちら。詳細についてはこちら。 ページルールを通して個々のWAFルールは有効にも無効にもできません。 |
|
その他の詳細
Bypass Cache on Cookie 設定
この設定は、BusinessとEnterpriseのお客様にご利用いただけます。
Bypass Cache on Cookie 設定は、以下のように基礎的な正規表現(regex)をサポートします:
- 複数のCookieと一致するためにパイプライン演算子(|と表記)またはブール論理を使用。例えば、 Cookieの値にかかわらず、バイパスと呼ばれるCookieがかPHPSESSIS設定されている場合、bypass=.*|PHPSESSID=.* は、キャッシュをバイパスします。
- ワイルドカード演算子(”で表記)、“t.*st=” のルール値が、テストと呼ばれるCookieと他にteestと呼ばれるCookieの両方と一致するようにします。
制限事項には以下が含まれます:
- 1cookie regex当たり150文字
- 1cookie regex当たり12ワイルドカード
- 1 wildcard 中間 各 | the cookie regexで
様々なプラットフォームでBypass Cache on Cookieを設定する方法については、こちらの記事を参照してください:
- WordPressまたはWooCommerceで匿名のページビューをキャッシング
- Magento 1とMagento 2で匿名ページビューをキャッシング
- 静的HTMLをキャッシュするにはどうすればいいですか?
注:この設定とenterprise-のみCache On Cookie設定から同じページルールを追加する場合、Cache On CookieはBypass Cache on Cookieより優先されます。