← Cloudflare Rules / rules / custom-errors
Příklady custom error rules
Uvedené příklady používají ve svých výrazech pravidel tato pole:
-
http.response.code(Response Status Code): Představuje stavový kód HTTP vrácený klientovi, buď nastavený produktem Cloudflare, nebo vrácený origin serverem. Toto pole použijte k přizpůsobení odpovědi pro chybové kódy vrácené origin serverem nebo produktem Cloudflare, jako je Worker. -
cf.response.1xxx_code: Obsahuje konkrétní kód chyby pro chyby generované Cloudflare. Toto pole funguje pouze pro chyby generované Cloudflare, jako je 52X a 1XXX.
Vlastní JSON odpověď pro všechny chyby 5XX
Tento příklad konfiguruje vlastní chybovou odpověď JSON pro všechny chyby řady 5XX (500-599) v zóně. Stavový kód HTTP vlastní chybové odpovědi bude nastaven na 530.
Konfigurace vlastního pravidla chyby:
-
Název:
Custom JSON response for all 5XX errors -
Pokud příchozí požadavky odpovídají > Custom filter expression:
Pole Operátor Hodnota Logika Response Status Code větší nebo rovno 500And Response Status Code menší nebo rovno 599Pokud používáte Expression Editor:
(http.response.code ge 500 and http.response.code le 599) -
Typ odpovědi: Odpověď JSON
-
Kód odpovědi:
530 -
Odpověď JSON:
{"message": "A server error occurred."}
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/phases/http_custom_errors/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"ref": "json_response_for_5xx_errors",
"action": "serve_error",
"action_parameters": {
"content": "{\"message\": \"A server error occurred.\"}",
"content_type": "application/json",
"status_code": 530
},
"expression": "http.response.code ge 500 and http.response.code lt 600",
"enabled": true
}
]
}'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.
Tento PUT požadavek, odpovídající Aktualizace vstupní sady pravidel zóny operace nahradí veškerá stávající pravidla v http_custom_errors je vstupní sada pravidel dané fáze.
Vlastní HTML odpověď s aktualizovaným stavovým kódem
Tento příklad konfiguruje vlastní chybovou odpověď HTML pro odpovědi s 500 stavový kód HTTP a znovu definuje stavový kód odpovědi na 503.
Konfigurace vlastního pravidla chyby:
-
Název:
Custom HTML response for 500 errors -
Pokud příchozí požadavky odpovídají > Custom filter expression:
Pole Operátor Hodnota Response Status Code rovno 500Pokud používáte Expression Editor:
(http.response.code eq 500) -
Typ odpovědi: Odpověď HTML
-
Kód odpovědi:
503 -
Odpověď HTML:
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Application unavailable</title></head><body><h1>Application temporarily unavailable</h1><p>Please try again later.</p></body></html>
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/phases/http_custom_errors/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"ref": "html_response_500_to_503",
"action": "serve_error",
"action_parameters": {
"content": "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>Application unavailable</title></head><body><h1>Application temporarily unavailable</h1><p>Please try again later.</p></body></html>",
"content_type": "text/html",
"status_code": 503
},
"expression": "http.response.code eq 500",
"enabled": true
}
]
}'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.
Tento PUT požadavek, odpovídající Aktualizace vstupní sady pravidel zóny operace nahradí veškerá stávající pravidla v http_custom_errors je vstupní sada pravidel dané fáze.
Vlastní HTML odpověď pro chyby Cloudflare 1020
Tento příklad konfiguruje vlastní chybovou odpověď HTML pro Chyba Cloudflare 1020 (Access Denied).
Konfigurace vlastního pravidla chyby:
-
Název:
Custom HTML response for 1020 errors -
Pokud příchozí požadavky odpovídají > Custom filter expression
Použijte Expression Editor:
(cf.response.1xxx_code eq 1020) -
Typ odpovědi: Odpověď HTML
-
Odpověď HTML:
<!DOCTYPE html><html><head><meta charset="utf-8"><title>Access denied</title></head><body><h1>You do not have access to this page</h1><p>Contact us if you think this is an error.</p></body></html>
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/phases/http_custom_errors/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"ref": "html_response_cf_1020",
"action": "serve_error",
"action_parameters": {
"content": "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title>Access denied</title></head><body><h1>You do not have access to this page</h1><p>Contact us if you think this is an error.</p></body></html>",
"content_type": "text/html"
},
"expression": "cf.response.1xxx_code eq 1020",
"enabled": true
}
]
}'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.
Tento PUT požadavek, odpovídající Aktualizace vstupní sady pravidel zóny operace nahradí veškerá stávající pravidla v http_custom_errors je vstupní sada pravidel dané fáze.
Vlastní chybové aktivum vytvořené z URL
Tento příklad konfiguruje vlastní chybové pravidlo, které vrací dříve vytvořený vlastní chybový prostředek s názvem 500_error_template pro odpovědi s 500 stavový kód HTTP.
Konfigurace vlastního pravidla chyby:
-
Název:
Serve asset for HTTP 500 errors -
Pokud příchozí požadavky odpovídají > Custom filter expression:
Pole Operátor Hodnota Response Status Code rovno 500Pokud používáte Expression Editor:
(http.response.code eq 500) -
Typ odpovědi: Vlastní chybové aktivum
-
Prostředek:
500_error_template
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/phases/http_custom_errors/entrypoint" \
--request PUT \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"rules": [
{
"ref": "serve_error_500_asset",
"action": "serve_error",
"action_parameters": {
"asset_name": "500_error_template",
"content_type": "text/html"
},
"expression": "http.response.code eq 500",
"enabled": true
}
]
}'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.
Tento PUT požadavek, odpovídající Aktualizace vstupní sady pravidel zóny operace nahradí veškerá stávající pravidla v http_custom_errors je vstupní sada pravidel dané fáze.