Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

カスタムエラールールを作成する

最終更新 Markdown で表示Agent セットアップ

ダッシュボードで作成する

カスタムエラールールを作成する

  1. Cloudflare ダッシュボードで、Rules の Overview ページを開きます。

    Overview を開く ↗
  2. Create rule > Custom Error Rule を選びます。

  3. Rule name に、分かりやすいルール名を入力します。

  4. If incoming requests match で、次のいずれかを選びます。

    • Custom filter expression: カスタム式に一致するトラフィックにだけルールを適用します。書き換え対象のリクエストを決める ルール式 を定義します。カスタム式は Expression Builder または Expression Editor で定義します。詳細は ダッシュボードで式を編集する を参照してください。

    • All incoming requests: 400 以上のステータスコードを返すすべてのレスポンスにルールを適用します。ただし、Cloudflare のセキュリティ製品が出すブロックおよびチャレンジアクションは除きます。

  5. Deliver a custom error response で、レスポンスタイプを選びます(Custom error asset、または利用可能なインラインレスポンスのいずれか)。

    Custom error asset を選んだ場合は、Asset で既存のカスタムエラーアセットを選ぶか、Create new asset を選んで 新しいカスタムエラーアセットを作成 します。

    JSON responseHTML responseText response、または XML response を選んだ場合は、訪問者へ送るカスタムエラーレスポンスを、それぞれ JSON responseHTML responseText responseXML response に入力します。 レスポンスには エラートークン を含められます。Cloudflare は訪問者へレスポンスを送る前に、トークンを実際の値へ置き換えます。レスポンスの最大サイズは 10 KB です。

  6. (任意)Response code に、レスポンスの HTTP ステータスコード(400 から 999 の整数)を入力します。指定した場合、現在のレスポンスステータスコードを上書きします。

  7. (任意)Place at で、ルールリスト内の配置を決めます。リストの先頭、リストの末尾、または任意の位置(指定したルールの直後)です。

  8. ルールを保存してデプロイするには Deploy を選びます。まだデプロイしない場合は Save as Draft を選びます。

カスタムエラーアセットを作成する

  1. Create Custom Error Asset サイドバーの Asset name に、アセット名を入力します。
  2. (任意)Description に、アセットの説明を入力します。
  3. URL に、取得して Cloudflare のグローバルネットワークへ保存したいページの URL を入力します。Cloudflare はページのリソースをすべて取得し、縮小版を保存します。この縮小版を、1 つ以上のカスタムエラールールで使えます。
  4. Save を選びます。

既存のカスタムエラーアセットを確認するには、Rules > Settings > Custom Error Assets タブを開きます。

API で作成する

API でカスタムエラールールを設定する手順は次のとおりです。

  1. (任意)指定した URL をもとに カスタムエラーアセットを作成 します。
  2. 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 で特定ゾーン向けのカスタムエラールールを作成するワークフローは次のとおりです。

  1. List zone rulesets オペレーションで、ゾーン単位に http_custom_errors フェーズのルールセットがすでにあるかを確認します。

  2. フェーズルールセットがない場合は、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 Write
  • Config Settings Write
  • Dynamic URL Redirects Write
  • Cache Settings Write
  • Custom Errors Write
  • Origin Write
  • Managed headers Write
  • Zone Transform Rules Write
  • Mass URL Redirects Write
  • Magic Firewall Write
  • L4 DDoS Managed Ruleset Write
  • HTTP DDoS Managed Ruleset Write
  • Sanitize Write
  • Transform Rules Write
  • Select Configuration Write
  • Bot Management Write
  • Zone WAF Write
  • Account WAF Write
  • Account Rulesets Write
  • Logs Write
  • Logs Write
Update a zone entry point rulesetbash
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 フェーズのエントリポイントルールセット内の既存ルールをすべて置き換えます。

必要な API トークン権限

Custom Error Rules と Custom Error Assets を管理する API リクエストでは、API トークンに少なくとも次の権限が必要です。

  • Custom Error Rules > Edit

役に立ちましたか?