Response Header Transform Rules(レスポンスヘッダー変換ルール)を使い、サイト訪問者へ送る HTTP レスポンスのヘッダーを操作します。
flowchart LR accTitle: ヘッダー変更の図 accDescr: Header transform rules は、オリジンサーバーへ送るヘッダー(リクエストヘッダーの変更)またはサイト訪問者へ送るヘッダー(レスポンスヘッダーの変更)を変えられます。 A[訪問者] B((Cloudflare)) C[(オリジンサーバー)] A -.-> B -. "リクエストヘッダーの<br> 変更を含む" .-> C C -.-> B == "レスポンスヘッダーの<br> 変更を含む" ==> A style A stroke-width: 2px style B stroke: orange,fill: orange,color: black linkStyle 0,1,2 stroke-width: 1px linkStyle 3 stroke-width: 3px
オリジンサーバーへ送る リクエスト の HTTP ヘッダーを変更するには、Request Header Transform Rules を参照してください。
Response Header Transform Rules では、次ができます。
- HTTP レスポンスヘッダーの値をリテラル文字列に設定します。既存の値を上書きするか、ヘッダーが無い場合はレスポンスへ追加します。
- 式に従って HTTP レスポンスヘッダーの値を設定します。既存の値を上書きするか、ヘッダーが無い場合はレスポンスへ追加します。
- 同じ名前の既存ヘッダーを消さずに、リテラル文字列の新しい HTTP レスポンスヘッダーを追加します。
- 同じ名前の既存ヘッダーを消さずに、式に従った新しい HTTP レスポンスヘッダーを追加します。
- レスポンスから HTTP ヘッダーを削除します。
レスポンスヘッダー変換ルールは、ダッシュボード、API、または Terraform で作成できます。
より複雑な response header modifications には、Snippets の利用を検討してください。
-
レスポンスヘッダーの値は、対応する HTTP リクエストのフィールド値を使って計算します。たとえば、式で使うフィールド
ip.src.countryは、サイト訪問者の国を返します。レスポンスを送ったオリジンサーバーの国ではありません。 -
名前が
cf-またはx-cf-で始まる HTTP レスポンスヘッダーは、追加、変更、削除できません。 -
server、eh-cache-tag、eh-cdn-cache-controlなど、一部のヘッダーの値は変更できません。 -
現在、Response Header Transform Rules の式では IP lists を参照できません。
-
HTTP レスポンスヘッダーの削除操作は、指定した名前のレスポンスヘッダーをすべて削除します。
-
既存の HTTP レスポンスヘッダーの値を、空文字列(
"")または未定義値になる式で変えた場合、その HTTP レスポンスヘッダーは 削除されます。 -
現在、変更できない HTTP レスポンスヘッダーは限られています。妥当なユースケースがあれば、Cloudflare は一部の制限を外すことがあります。検討のため コミュニティに投稿 ↗ してください。
-
レスポンスヘッダー変換ルールは、Cloudflare のデフォルトエラーページと Custom Errors にも適用されます。
-
レスポンスヘッダー変換ルールで
cache-control、CDN-Cache-Control、Cloudflare-CDN-Cache-Controlヘッダーを変えても、Cloudflare がオブジェクトをキャッシュする方法は変わりません。Cloudflare はレスポンスヘッダー変更を適用する前にキャッシュ動作を評価するためです。Cloudflare のキャッシュ動作を制御するには、キャッシュルール を作成します。 -
レスポンスに
set-cookieヘッダーを追加するには、Set static / Set dynamic ではなく Add static / Add dynamic 操作を使います。Add 操作は同じ名前の既存ヘッダーを消さずに新しいヘッダーを追加します。Set 操作はその名前の既存ヘッダーをすべて置き換えます。set-cookieに Set 操作を使うと、レスポンスにすでにあるset-cookieヘッダーが削除されます。Bot Management など、ほかの Cloudflare プロダクトが追加したヘッダーも含まれます。 -
レスポンスヘッダー変換ルールは順番に実行され、後のルールは前のルールによる変更を上書きできます。
-
リクエストフィールドとレスポンスフィールドの値は、各 フェーズ 内で不変です。レスポンスヘッダー変換ルールが定義される
http_response_headers_transformフェーズも同様です。そのため、後続のレスポンスヘッダー変換ルールは、フィルター式の評価時に、前のルールが変えた値ではなく元のフィールド値を使います。詳細は ルール評価時のフィールド値 を参照してください。
Response Header Transform Rules のトラブルシューティングでは、Cloudflare Trace を使い、特定の URL でルールが発動するかどうかを確認します。