Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 19 additions & 17 deletions public/_redirects
Original file line number Diff line number Diff line change
Expand Up @@ -1842,20 +1842,13 @@
/http-applications/* /version-management/:splat 301
/http3/* https://www.cloudflare.com/learning/performance/what-is-http3/ 301
/railgun/* / 301
/rules/bulk-redirects/* /rules/url-forwarding/bulk-redirects/:splat 301
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some redirects have been moved. Only added one entry.

/rules/url-forwarding/dynamic-redirects/* /rules/url-forwarding/single-redirects/:splat 301
/ssl/ssl-tls/* /ssl/reference/:splat 301
/ssl/reference/cipher-suites/* /ssl/edge-certificates/additional-options/cipher-suites/:splat 301
/ssl/reference/migration-guides/digicert-update/* /ssl/reference/migration-guides/ 301
/support/account-management-billing/billing-cloudflare-add-on-services/* https://www.cloudflare.com/plans/ 301
/tenant/tutorial/* /tenant/get-started/ 301
/waf/managed-rulesets/* /waf/managed-rules/:splat 301
/firewall/recipes/* /waf/custom-rules/use-cases/:splat 301
/workers/wrangler-legacy/* /workers/wrangler/migration/v1-to-v2/wrangler-legacy/:splat 301
/waf/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
/waf/custom-rules/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
/waf/exposed-credentials-check/* /waf/managed-rules/check-for-exposed-credentials/:splat 301
/waf/security-events/* /waf/analytics/security-events/:splat 301
/firewall/recipes/* /waf/custom-rules/use-cases/:splat 301
/web3/polygon-gateway/* /web3/ 301
/vectorize/configuration/* /vectorize/best-practices/:splat 301

Expand Down Expand Up @@ -1904,15 +1897,6 @@
## Secure your Internet Traffic
/learning-paths/secure-internet-traffic/connect-devices/* /learning-paths/secure-internet-traffic/connect-devices-networks/:splat 301


# Old WAF changelog entries
/waf/change-log/2019-* /waf/change-log/historical-2019/ 301
/waf/change-log/2020-* /waf/change-log/historical-2020/ 301
/waf/change-log/2021-* /waf/change-log/historical-2021/ 301
/waf/change-log/2022-* /waf/change-log/historical-2022/ 301
/waf/change-log/2023-* /waf/change-log/historical-2023/ 301
/waf/change-log/2024-* /waf/change-log/historical-2024/ 301

# Cloudflare for SaaS
/ssl/ssl-for-saas/common-tasks/* /cloudflare-for-platforms/cloudflare-for-saas/ 301
/ssl/ssl-for-saas/reference/* /cloudflare-for-platforms/cloudflare-for-saas/reference/ 301
Expand All @@ -1928,6 +1912,24 @@
/magic-wan/connector/* /magic-wan/configuration/connector/:splat 301
/magic-wan/configuration/connector/dhcp/* /magic-wan/configuration/connector/network-options/dhcp/:splat 301

# Rules
/rules/bulk-redirects/* /rules/url-forwarding/bulk-redirects/:splat 301
/rules/url-forwarding/dynamic-redirects/* /rules/url-forwarding/single-redirects/:splat 301
/rules/custom-error-responses/* /rules/custom-errors/:splat 301
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added this new entry.


# WAF
/waf/managed-rulesets/* /waf/managed-rules/:splat 301
/waf/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
/waf/custom-rules/custom-rulesets/* /waf/account/custom-rulesets/:splat 301
/waf/exposed-credentials-check/* /waf/managed-rules/check-for-exposed-credentials/:splat 301
/waf/security-events/* /waf/analytics/security-events/:splat 301
/waf/change-log/2019-* /waf/change-log/historical-2019/ 301
/waf/change-log/2020-* /waf/change-log/historical-2020/ 301
/waf/change-log/2021-* /waf/change-log/historical-2021/ 301
/waf/change-log/2022-* /waf/change-log/historical-2022/ 301
/waf/change-log/2023-* /waf/change-log/historical-2023/ 301
/waf/change-log/2024-* /waf/change-log/historical-2024/ 301

# Workers
/workers/reference/apis/* /workers/runtime-apis/:splat 301
/workers/templates/pages/* /workers/examples/:splat 301
Expand Down
50 changes: 50 additions & 0 deletions src/content/changelogs-next/2025-02-11-custom-errors-beta.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: "Custom Errors (beta): Stored Assets & Account-level Rules"
description: Cloudflare introduces Custom Errors (beta), building on Custom Error Responses with new asset storage capabilities
products:
- rules
date: 2025-02-11T11:00:00Z
---

Cloudflare introduces [Custom Errors](/rules/custom-errors/) (beta), building on Custom Error Responses with new asset storage capabilities. This update allows users to store externally hosted error pages at Cloudflare edge and reference them in custom error rules, eliminating the need to supply inline content.

New capabilities:

- **Custom error assets** – Fetch and store external error pages at the edge for use in error responses.
- **Account-Level custom errors** – Define error handling rules and assets at the account level for consistency across multiple zones. Zone-level rules take precedence over account-level ones, and assets are not shared between levels.

To store an external error page on the Cloudflare global network, submit a `POST` request to create an asset:

```bash
curl "https://api.cloudflare.com/client/v4/zones/{zone_id}/custom_pages/assets" \
--header "Authorization: Bearer <API_TOKEN>" \
--header 'Content-Type: application/json' \
--data '{
"name": "maintenance",
"description": "Maintenance template page",
"url": "https://example.com/"
}'
```

Then, reference the stored asset in a custom error rule:

```bash
curl --request PUT \
"https://api.cloudflare.com/client/v4/zones/{zone_id}/rulesets/phases/http_custom_errors/entrypoint" \
--header "Authorization: Bearer <API_TOKEN>" \
--header 'Content-Type: application/json' \
--data '{
"rules": [
{
"action": "serve_error",
"action_parameters": {
"asset_name": "maintenance",
"content_type": "text/html",
"status_code": 503
},
"enabled": true,
"expression": "http.request.uri.path contains \"error\""
}
]
}'
```
4 changes: 4 additions & 0 deletions src/content/changelogs/rules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ productLink: "/rules/"
productArea: Application performance
productAreaLink: /fundamentals/reference/changelog/performance/
entries:
- publish_date: "2025-02-11"
title: "Custom Errors (beta): Stored assets and account-level rules"
description: |-
Cloudflare introduces [Custom Errors](/rules/custom-errors/) (beta), expanding on Custom Error Responses with new asset storage capabilities. With custom error assets, you can now retrieve and store externally hosted error pages at Cloudflare edge and reference them in custom error rules, eliminating the need to define error content inline. Additionally, Custom Errors now support account-level rules and assets, enabling consistent error handling across multiple zones.
- publish_date: "2025-01-29"
title: New Snippets code editor
description: |-
Expand Down
126 changes: 0 additions & 126 deletions src/content/docs/rules/custom-error-responses/create-api.mdx

This file was deleted.

41 changes: 0 additions & 41 deletions src/content/docs/rules/custom-error-responses/index.mdx

This file was deleted.

39 changes: 0 additions & 39 deletions src/content/docs/rules/custom-error-responses/parameters.mdx

This file was deleted.

Loading
Loading