← Cloudflare Ruleset Engine / ruleset-engine / about
Pravidla
Pravidlo definuje filtr a akci, která se má provést u příchozích požadavků odpovídajících tomuto filtru.
- Pravidlo výraz, také nazývaný filtrovací výraz, definuje rozsah pravidla.
- Pravidlo action definuje, co se stane, když výraz odpovídá.
Výrazy pravidel se definují pomocí Rules language.
Uvažujme například následující sadu pravidel se čtyřmi pravidly (R1, R2, R3 a R4). U daného příchozího požadavku odpovídá výraz prvních dvou pravidel vlastnostem požadavku. Akce pro tato pravidla se proto spustí (Spustit a Log, v tomto pořadí). Akce prvního pravidla spouští spravovaný ruleset, což znamená, že se vyhodnotí každé pravidlo ve spravovaném rulesetu. Akce druhého pravidla zaznamenává událost spojenou s aktuální fází. Výrazy pravidel 3 a 4 se neshodují, takže se jejich akce nespustí. Protože žádné pravidlo požadavek neblokuje, pokračuje do další fáze.
Pravidla mohou mít další funkce díky konkrétním produktům Cloudflare. V takovém případě máte k dispozici více polí pro výrazy pravidel, můžete provádět různé akce nebo konfigurovat další chování v dané fázi.
Vyhodnocování pravidel
Při vyhodnocování pravidla Cloudflare porovnává hodnoty vlastností požadavku/odpovědi nebo odvozené hodnoty (získané pomocí pole) s těmi, které jsou definované ve filtrovacím výrazu pravidla.
Pokud se celý výraz vyhodnotí na true, dojde ke shodě pravidla a Cloudflare spustí action nakonfigurovanou v pravidle. Pokud se výraz vyhodnotí jako false, se pravidlo neshoduje a jeho nakonfigurovaná akce se neuplatní.
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í.
Když používáte true jako filtrovací výraz pravidla, což znamená "použít pravidlo na každý příchozí požadavek" na aktuální fáze úroveň, kterou může být zóna nebo účet.
Hodnoty polí při vyhodnocování pravidla
Při vyhodnocování pravidel pro daný požadavek/odpověď hodnoty všech polí požadavku a odpovědi pole jsou v rámci každé fáze neměnná. Hodnoty polí se však mezi fázemi mohou měnit.
Například:
- Pokud Pravidlo přepisu URL #1 aktualizuje cestu URI nebo řetězec dotazu požadavku, pravidlo pro přepis URL #2 k těmto dřívějším změnám již nepřihlédne.
- Pokud pravidlo pro transformaci hlaviček požadavku #1 nastaví hodnotu hlavičky HTTP požadavku, pravidlo pro transformaci hlavičky požadavku #2 ji už nebude moci přečíst ani vyhodnotit.
- Pokud pravidlo přepsání URL aktualizuje cestu URI nebo řetězec dotazu požadavku,
http.request.uri,http.request.uri.*, ahttp.request.full_uripolí bude mít jinou hodnotu ve fázích, které následují pohttp_request_transformfázi (kde se spouští URL Rewrite Rules).