← Cloudflare Rules / rules / transform / response-header-modification
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:
- Nastavte akci pravidla na
rewrite. - Definujte parametry úpravy hlaviček v
action_parameterspole podle operace, kterou chcete provést (nastavit, přidat nebo odebrat hlavičku). - Nasaďte pravidlo do
http_response_headers_transformfázi na úrovni zóny.
Postup
Pravidlo transformace hlaviček odpovědi vytvoříte pro danou zónu přes API podle tohoto postupu:
-
Použijte Seznam sad pravidel zóny operaci pro kontrolu, zda již existuje ruleset pro
http_response_headers_transformfázi na úrovni zóny. -
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
- typ:
-
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 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/$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 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/$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
set-cookie HTTP hlavičku odpovědi se statickou hodnotouNá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 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/$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 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/$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í:
- Transform Rules > Úprava
- Account Rulesets > Čtení