-
Cloudflare ダッシュボードで、Rules の Overview ページを開きます。
Overview を開く ↗ -
Create rule > Custom Error Rule を選びます。
-
Rule name に、分かりやすいルール名を入力します。
-
If incoming requests match で、次のいずれかを選びます。
-
Custom filter expression: カスタム式に一致するトラフィックにだけルールを適用します。書き換え対象のリクエストを決める ルール式 を定義します。カスタム式は Expression Builder または Expression Editor で定義します。詳細は ダッシュボードで式を編集する を参照してください。
-
All incoming requests:
400以上のステータスコードを返すすべてのレスポンスにルールを適用します。ただし、Cloudflare のセキュリティ製品が出すブロックおよびチャレンジアクションは除きます。
-
-
Deliver a custom error response で、レスポンスタイプを選びます(Custom error asset、または利用可能なインラインレスポンスのいずれか)。
Custom error asset を選んだ場合は、Asset で既存のカスタムエラーアセットを選ぶか、Create new asset を選んで 新しいカスタムエラーアセットを作成 します。
JSON response、HTML response、Text response、または XML response を選んだ場合は、訪問者へ送るカスタムエラーレスポンスを、それぞれ JSON response、HTML response、Text response、XML response に入力します。 レスポンスには エラートークン を含められます。Cloudflare は訪問者へレスポンスを送る前に、トークンを実際の値へ置き換えます。レスポンスの最大サイズは 10 KB です。
-
(任意)Response code に、レスポンスの HTTP ステータスコード(
400から999の整数)を入力します。指定した場合、現在のレスポンスステータスコードを上書きします。 -
(任意)Place at で、ルールリスト内の配置を決めます。リストの先頭、リストの末尾、または任意の位置(指定したルールの直後)です。
-
ルールを保存してデプロイするには Deploy を選びます。まだデプロイしない場合は Save as Draft を選びます。
- Create Custom Error Asset サイドバーの Asset name に、アセット名を入力します。
- (任意)Description に、アセットの説明を入力します。
- URL に、取得して Cloudflare のグローバルネットワークへ保存したいページの URL を入力します。Cloudflare はページのリソースをすべて取得し、縮小版を保存します。この縮小版を、1 つ以上のカスタムエラールールで使えます。
- Save を選びます。
既存のカスタムエラーアセットを確認するには、Rules > Settings > Custom Error Assets タブを開きます。
API でカスタムエラールールを設定する手順は次のとおりです。
- (任意)指定した URL をもとに カスタムエラーアセットを作成 します。
- Rulesets API を使い、
http_custom_errorsフェーズに カスタムエラールールを作成 します。
次の POST リクエストは、指定した URL をもとにゾーンへ新しいカスタムエラーアセットを作成します。
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/custom_pages/assets" \
--header "Authorization: Bearer <API_TOKEN>" \
--json '{
"name": "500_error_template",
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_template.html"
}'{
"result": {
"name": "500_error_template",
"description": "Standard 5xx error template page",
"url": "https://example.com/errors/500_template.html",
"last_updated": "2025-02-10T11:36:07.810215Z",
"size_bytes": 2048
},
"success": true
}API でカスタムエラールールを作成するときは、次を確認してください。
- ルールアクションを
serve_errorにします。 - レスポンスタイプに応じて、
action_parametersフィールドに ルールパラメーター を定義します。 - ルールを
http_custom_errorsフェーズへデプロイします。
http_custom_errors フェーズのルールセットで、最初に一致したルールだけが適用されます。ルールセット内のほかのルールは一致も適用もされません。また、ゾーン単位で定義したカスタムエラールールは、アカウント単位のルールより優先されます。
API で特定ゾーン向けのカスタムエラールールを作成するワークフローは次のとおりです。
-
List zone rulesets オペレーションで、ゾーン単位に
http_custom_errorsフェーズのルールセットがすでにあるかを確認します。 -
フェーズルールセットがない場合は、Update a zone entry point ruleset オペレーションで作成します。このオペレーションは、ルールセットがなければ作成し、ルールセット内のすべてのルールを更新できます。ルールセットは
http_custom_errorsフェーズに作成します。フェーズルールセットがすでにある場合は、Update a zone entry point ruleset オペレーションですべてのルールを置き換えるか、Add a rule to a ruleset オペレーションで既存ルールへルールを追加します。
アカウント単位でカスタムエラールールを作成する場合は、対応するアカウント単位の API エンドポイントを使います。
この例では、HTTP ステータスコード 500 のレスポンスに対して、あらかじめ作成したカスタムエラーアセット 500_error_template を返すカスタムエラールールを設定します。
Required API token permissions
At least one of the following token permissions is required:Response Compression WriteConfig Settings WriteDynamic URL Redirects WriteCache Settings WriteCustom Errors WriteOrigin WriteManaged headers WriteZone Transform Rules WriteMass URL Redirects WriteMagic Firewall WriteL4 DDoS Managed Ruleset WriteHTTP DDoS Managed Ruleset WriteSanitize WriteTransform Rules WriteSelect Configuration WriteBot Management WriteZone WAF WriteAccount WAF WriteAccount Rulesets WriteLogs WriteLogs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/http_custom_errors/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"ref": "serve_500_template",
"action": "serve_error",
"action_parameters": {
"asset_name": "500_error_template",
"content_type": "text/html"
},
"expression": "http.response.code eq 500",
"enabled": true
}
]
}'Terraform を使う場合、更新をまたいでルール ID を安定させるには ref フィールドを使います。このフィールドを追加すると、変更時に Terraform がルールを再作成するのを防げます。詳細は Terraform ドキュメントの トラブルシューティング を参照してください。
この PUT リクエストは Update a zone entry point ruleset オペレーションに対応し、http_custom_errors フェーズのエントリポイントルールセット内の既存ルールをすべて置き換えます。
Custom Error Rules と Custom Error Assets を管理する API リクエストでは、API トークンに少なくとも次の権限が必要です。
- Custom Error Rules > Edit