← Cloudflare Rules / rules / transform
Request Header Transform Rules
Pomocí Request Header Transform Rules můžete upravovat hlavičky HTTP požadavků odesílaných na váš origin server (server, na kterém je hostován váš web nebo aplikace).
flowchart LR
accTitle: Header modifications diagram
accDescr: Header transform rules can change the headers sent to your origin server (request header modifications) or sent your your website visitors (response header modifications).
A[Visitor]
B((Cloudflare))
C[(Origin server)]
A -.-> B == "Includes request<br> header modifications" ==> C
C -.-> B -. "Includes response<br> header modifications" .-> A
style A stroke-width: 2px
style B stroke: orange,fill: orange,color: black
linkStyle 0,2,3 stroke-width: 1px
linkStyle 1 stroke-width: 3px
Chcete-li upravit HTTP hlavičky v odpověď odesílané návštěvníkům webu, viz Response Header Transform Rules.
Pomocí Request Header Transform Rules můžete:
- Nastavte hodnotu hlavičky požadavku HTTP na doslovnou textovou hodnotu, čímž přepíšete její předchozí hodnotu nebo přidáte do požadavku novou hlavičku.
- Nastavte hodnotu hlavičky požadavku HTTP podle výrazu (vzorce, který vypočítá hodnotu na základě vlastností požadavku), čímž přepíšete její předchozí hodnotu nebo přidáte do požadavku novou hlavičku.
- Odebere hlavičku HTTP z požadavku.
Pravidlo pro transformaci hlavičky požadavku můžete vytvořit v dashboardu, přes API, nebo pomocí Terraformu.
Pro složitější úpravy hlaviček požadavku zvažte použití Snippets.
Důležité upozornění
-
Nemůžete upravovat ani odebírat hlavičky HTTP požadavku, jejichž název začíná na
x-cf-nebocf-kroměcf-connecting-ipHTTP hlavičku požadavku, kterou můžete odstranit. -
Z důvodu dodržení protokolu nelze upravovat ani odstraňovat hlavičky požadavků s zakázané názvy hlaviček ↗ (například
Accept-Encoding) obecně není v Request Header Transform Rules povoleno. -
Nemůžete upravit hodnotu žádné hlavičky běžně používané k identifikaci IP adresy návštěvníka webu nebo výchozího protokolu, například
x-forwarded-for,true-client-ip,x-real-ip, nebox-forwarded-proto. Pokud váš origin server vyžaduje vlastní hodnotu v hlavičce, jako jex-real-ipu požadavků, které dosáhnou vašeho origin serveru, použijte Cloudflare Snippets nebo Cloudflare Workers a nastavte hlavičku nafetch()podpožadavek. Hodnota musí být syntakticky platná IP adresa. Toto řešení nefunguje pro mezizónové podpožadavky, kde Cloudflare bezpodmínečně nahradí hodnotu interní adresou Cloudflare, aby zabránil IP spoofingu. -
Ačkoli můžete odebrat
x-forwarded-forhlavičku v Request Header Transform Rule, backendový proxy server Cloudflare ji před doručením požadavku na váš origin server znovu přidá (s IP adresou návštěvníka), protože proxy běží až po všech fázích pravidel. Totéž platí pro Managed Transforms. Pokud je však požadavek zpracován pomocí Cloudflare Workers, který spouštějí se před mezipamětí ,x-forwarded-forhlavička požadavku bude chybět, protože proxy ji ještě znovu nepřidala. -
Nemůžete nastavit ani upravit hodnotu
cookieHTTP hlavičky požadavku, tyto hlavičky ale můžete odstranit. Pokud nakonfigurujete pravidlo, které odstranícookieHTTP hlavičky požadavku odstraní všechnycookiehlavičky v odpovídajících požadavcích. -
Pokud upravíte hodnotu existující hlavičky HTTP požadavku pomocí výrazu, který se vyhodnotí jako prázdný řetězec (
"") nebo nedefinovanou hodnotu, HTTP hlavička požadavku je odebráno. -
Operace odstranění hlavičky HTTP požadavku odstraní všechny hlavičky požadavku se zadaným názvem.
-
V současné době existuje omezený počet hlaviček HTTP požadavků, které nelze upravit. Cloudflare může u některých z těchto hlaviček omezení zrušit, pokud se objeví platné případy použití. Vytvořte příspěvek v komunitě ↗ ke zvážení.
-
Chcete-li použít claims uvnitř JSON Web Token (JWT), musíte nejprve v API Shield nastavit konfiguraci ověřování tokenů.
-
Pravidla pro transformaci hlaviček požadavku se spouštějí v pořadí, přičemž pozdější pravidla mohou přepsat změny provedené předchozími pravidly.
-
Hodnoty polí požadavku a odpovědi jsou v rámci každého fáze, jako například
http_request_late_transformfázi, kde jsou definována pravidla transformace hlaviček požadavku. To znamená, že pozdější pravidla transformace hlaviček požadavku při vyhodnocování svých filtračních výrazů stále používají původní hodnoty polí, nikoli hodnoty změněné předchozími pravidly. Viz Hodnoty polí při vyhodnocování pravidla s dalšími informacemi.
Pořadí vykonávání
Pořadí provádění funkcí Rules je následující:
- Single Redirects
- URL Rewrite Rules
- Configuration Rules
- Origin Rules
- Bulk Redirects
- Managed Transforms
- Request Header Transform Rules
- Cache Rules
- Snippets
- Cloud Connector
Výše uvedené různé typy pravidel mají přednost před Page Rules. To znamená, že pokud dojde ke shodě jak s Page Rules, tak s výše uvedenými produkty Rules, mají přednost Rules.
Obecně platí, že pro neukončující akce poslední změnu provedenou pravidly ve stejné fáze zvítězí (pozdější pravidla mohou přepsat změny provedené předchozími pravidly). U ukončujících akcí (Block, Přesměrování, nebo jedna z akcí typu challenge), vyhodnocování pravidel se zastaví a akce se provede okamžitě.
Pokud má například více pravidel Přesměrování akce, Cloudflare vždy použije přesměrování URL adresy z prvního pravidla, které odpovídá. Pokud navíc nakonfigurujete přesměrování URL adres pomocí různých produktů Cloudflare (Single Redirects a Bulk Redirects), použije se produkt spuštěný jako první, pokud dojde ke shodě pravidla (v tomto případě Single Redirects).
Viz Seznam fází pro pořadí, ve kterém se produkty vykonávají.
Řešení potíží
Při řešení problémů s Request Header Transform Rules použijte Cloudflare Trace zjistit, zda se pravidlo uplatňuje na konkrétní URL adresu.