INTEGRITY Dokumentace

Vytvořte pravidlo transformace hlavičky odpovědi přes API

Použijte Rulesets API k vytváření pravidel Response Header Transform Rules přes API. Přečtěte si Galerie příkladů pravidel pro běžné případy použití.

Pokud používáte Terraform, přečtěte si Konfigurace Transform Rules pomocí Terraformu.

Základní nastavení pravidla

Při vytváření response header transform rule přes API se ujistěte, že:

Postup

Pravidlo transformace hlaviček odpovědi vytvoříte pro danou zónu přes API podle tohoto postupu:

  1. Použijte Seznam sad pravidel zóny operaci pro kontrolu, zda již existuje ruleset pro http_response_headers_transform fázi na úrovni zóny.

  2. Pokud fázový ruleset neexistuje, vytvořte jej pomocí Vytvoření rulesetu zóny operace. Ve vlastnostech nového rulesetu nastavte následující hodnoty:

    • typ: zone
    • fáze: http_response_headers_transform
  3. Použijte Aktualizace sady pravidel zóny operaci pro přidání pravidla úpravy hlaviček odpovědi do seznamu pravidel rulesetu. Případně můžete pravidlo zahrnout do Vytvoření rulesetu zóny požadavek uvedený v předchozím kroku.

Ujistěte se, že váš API token má oprávnění požadovaná oprávnění k provádění operací API.

Příklady požadavků

Příklad: Nastavení hlavičky HTTP odpovědi na statickou hodnotu

Následující příklad konfiguruje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla transformace hlaviček odpovědi, které nastaví HTTP hlavičku odpovědi na statickou hodnotu pomocí Aktualizace sady pravidel zóny operace. Odpověď bude obsahovat úplnou definici aktualizovaného rulesetu.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • 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
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "set_resp_header_source",
						"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
						"description": "My first response header transform rule",
						"action": "rewrite",
						"action_parameters": {
								"headers": {
										"X-Source": {
												"operation": "set",
												"value": "Cloudflare"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Response Headers Transform Ruleset",
		"description": "Zone-level ruleset that will execute Response Header Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "set_resp_header_source",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"headers": {
						"X-Source": {
							"operation": "set",
							"value": "Cloudflare"
						}
					}
				},
				"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
				"description": "My first response header transform rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_response_headers_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.

Příklad: Nastavení hlavičky HTTP odpovědi na dynamickou hodnotu

Následující příklad konfiguruje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla transformace hlaviček odpovědi, které nastaví HTTP hlavičku odpovědi na dynamickou hodnotu pomocí Aktualizace sady pravidel zóny operace. Odpověď bude obsahovat úplnou definici aktualizovaného rulesetu.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • 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
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "set_resp_header_bot_score",
						"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
						"description": "My first response header transform rule",
						"action": "rewrite",
						"action_parameters": {
								"headers": {
										"X-Bot-Score": {
												"operation": "set",
												"expression": "to_string(cf.bot_management.score)"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Response Headers Transform Ruleset",
		"description": "Zone-level ruleset that will execute Response Header Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "set_resp_header_bot_score",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"headers": {
						"X-Bot-Score": {
							"operation": "set",
							"expression": "to_string(cf.bot_management.score)"
						}
					}
				},
				"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
				"description": "My first response header transform rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_response_headers_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.

Příklad: Přidání set-cookie HTTP hlavičku odpovědi se statickou hodnotou

Následující příklad konfiguruje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla transformace hlaviček odpovědi, které přidává set-cookie HTTP hlavičku odpovědi se statickou hodnotou, a to pomocí Aktualizace sady pravidel zóny operace. Nakonfigurováním pravidla s add operace zachováte veškeré stávající set-cookie hlavičky, které v odpovědi již mohou existovat. Odpověď bude obsahovat úplnou definici rulesetu, který jste aktualizovali.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • 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
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "add_resp_header_set_mycookie",
						"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
						"description": "My first response header transform rule",
						"action": "rewrite",
						"action_parameters": {
								"headers": {
										"set-cookie": {
												"operation": "add",
												"value": "mycookie=custom_value"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Response Headers Transform Ruleset",
		"description": "Zone-level ruleset that will execute Response Header Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "add_resp_header_set_mycookie",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"headers": {
						"set-cookie": {
							"operation": "add",
							"value": "mycookie=custom_value"
						}
					}
				},
				"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
				"description": "My first response header transform rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_response_headers_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.

Příklad: Odstranění hlavičky HTTP odpovědi

Následující příklad nastavuje pravidla existující sady pravidel fáze ($RULESET_ID) do jediného pravidla transformace hlaviček odpovědi, které odebírá HTTP hlavičku odpovědi pomocí Aktualizace sady pravidel zóny operace. Odpověď bude obsahovat úplnou definici aktualizovaného rulesetu.

Požadovaná oprávnění API tokenu

Alespoň jeden z následujících oprávnění tokenu je povinné:
  • 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
Aktualizace sady pravidel zóny
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/$RULESET_ID" \
	--request PUT \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"rules": [
				{
						"ref": "remove_resp_header_cf_connecting_ip",
						"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
						"description": "My first response header transform rule",
						"action": "rewrite",
						"action_parameters": {
								"headers": {
										"cf-connecting-ip": {
												"operation": "remove"
										}
								}
						}
				}
		]
	}'
{
	"result": {
		"id": "<RULESET_ID>",
		"name": "Zone-level Response Headers Transform Ruleset",
		"description": "Zone-level ruleset that will execute Response Header Transform Rules.",
		"kind": "zone",
		"version": "2",
		"rules": [
			{
				"ref": "remove_resp_header_cf_connecting_ip",
				"id": "<RULE_ID>",
				"version": "1",
				"action": "rewrite",
				"action_parameters": {
					"headers": {
						"cf-connecting-ip": {
							"operation": "remove"
						}
					}
				},
				"expression": "(starts_with(http.request.uri.path, \"/en/\"))",
				"description": "My first response header transform rule",
				"last_updated": "2021-04-14T14:42:04.219025Z",
				"ref": "<RULE_REF>"
			}
		],
		"last_updated": "2021-04-14T14:42:04.219025Z",
		"phase": "http_response_headers_transform"
	},
	"success": true,
	"errors": [],
	"messages": []
}

Použijte ref pole, abyste při použití Terraformu měli stabilní ID pravidel napříč aktualizacemi. Přidání tohoto pole zabrání tomu, aby Terraform při změnách pravidlo vytvářel znovu. Další informace najdete v Řešení potíží v dokumentaci Terraform.


Požadovaná oprávnění API tokenu

API token použitý v API požadavcích pro správu Response Header Transform Rules musí mít alespoň následující oprávnění: