Skip to content

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

Response Header Transform Rules

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

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 レスポンスヘッダーは、追加、変更、削除できません。

  • servereh-cache-tageh-cdn-cache-control など、一部のヘッダーの値は変更できません。

  • 現在、Response Header Transform Rules の式では IP lists を参照できません。

  • HTTP レスポンスヘッダーの削除操作は、指定した名前のレスポンスヘッダーをすべて削除します。

  • 既存の HTTP レスポンスヘッダーの値を、空文字列("")または未定義値になる式で変えた場合、その HTTP レスポンスヘッダーは 削除されます

  • 現在、変更できない HTTP レスポンスヘッダーは限られています。妥当なユースケースがあれば、Cloudflare は一部の制限を外すことがあります。検討のため コミュニティに投稿 してください。

  • レスポンスヘッダー変換ルールは、Cloudflare のデフォルトエラーページと Custom Errors にも適用されます。

  • レスポンスヘッダー変換ルールで cache-controlCDN-Cache-ControlCloudflare-CDN-Cache-Control ヘッダーを変えても、Cloudflare がオブジェクトをキャッシュする方法は変わりません。Cloudflare はレスポンスヘッダー変更を適用する前にキャッシュ動作を評価するためです。Cloudflare のキャッシュ動作を制御するには、キャッシュルール を作成します。

  • レスポンスに set-cookie ヘッダーを追加するには、Set static / Set dynamic ではなく Add static / Add dynamic 操作を使います。Add 操作は同じ名前の既存ヘッダーを消さずに新しいヘッダーを追加します。Set 操作はその名前の既存ヘッダーをすべて置き換えます。set-cookieSet 操作を使うと、レスポンスにすでにある set-cookie ヘッダーが削除されます。Bot Management など、ほかの Cloudflare プロダクトが追加したヘッダーも含まれます。

  • レスポンスヘッダー変換ルールは順番に実行され、後のルールは前のルールによる変更を上書きできます。

  • リクエストフィールドとレスポンスフィールドの値は、各 フェーズ 内で不変です。レスポンスヘッダー変換ルールが定義される http_response_headers_transform フェーズも同様です。そのため、後続のレスポンスヘッダー変換ルールは、フィルター式の評価時に、前のルールが変えた値ではなく元のフィールド値を使います。詳細は ルール評価時のフィールド値 を参照してください。

トラブルシューティング

Response Header Transform Rules のトラブルシューティングでは、Cloudflare Trace を使い、特定の URL でルールが発動するかどうかを確認します。

役に立ちましたか?