From 891405776680ebadab6aab5167638a8282a2d2c9 Mon Sep 17 00:00:00 2001
From: Daniel Peinhopf <84123899+sevensolutions@users.noreply.github.com>
Date: Mon, 27 Oct 2025 10:52:04 +0100
Subject: [PATCH] Add missing reference docs for statusRewrites in errors
middleware
---
.../http/middlewares/errorpages.md | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/docs/content/reference/routing-configuration/http/middlewares/errorpages.md b/docs/content/reference/routing-configuration/http/middlewares/errorpages.md
index 251953b4b..2855a5cbb 100644
--- a/docs/content/reference/routing-configuration/http/middlewares/errorpages.md
+++ b/docs/content/reference/routing-configuration/http/middlewares/errorpages.md
@@ -18,6 +18,9 @@ http:
- "501"
- "503"
- "505-599"
+ statusRewrites:
+ "418": "404"
+ "502-504": "500"
service: error-handler-service
query: "/{status}.html"
@@ -33,6 +36,10 @@ http:
service = "error-handler-service"
query = "/{status}.html"
+ [http.middlewares.test-errors.errors.statusRewrites]
+ "418" = "404"
+ "502-504" = "500"
+
[http.services]
# ... definition of the error-handler-service
```
@@ -41,6 +48,8 @@ http:
# Dynamic Custom Error Page for 5XX Status Code
labels:
- "traefik.http.middlewares.test-errors.errors.status=500,501,503,505-599"
+ - "traefik.http.middlewares.test-errors.errors.statusRewrites.418=404"
+ - "traefik.http.middlewares.test-errors.errors.statusRewrites.502-504=500"
- "traefik.http.middlewares.test-errors.errors.service=error-handler-service"
- "traefik.http.middlewares.test-errors.errors.query=/{status}.html"
```
@@ -51,6 +60,8 @@ labels:
// ...
"Tags": [
"traefik.http.middlewares.test-errors.errors.status=500,501,503,505-599",
+ "traefik.http.middlewares.test-errors.errors.statusRewrites.418=404",
+ "traefik.http.middlewares.test-errors.errors.statusRewrites.502-504=500",
"traefik.http.middlewares.test-errors.errors.service=error-handler-service",
"traefik.http.middlewares.test-errors.errors.query=/{status}.html"
]
@@ -71,6 +82,9 @@ spec:
- "501"
- "503"
- "505-599"
+ statusRewrites:
+ "418": "404"
+ "502-504": "500"
query: /{status}.html
service:
name: error-handler-service
@@ -82,6 +96,7 @@ spec:
| Field | Description | Default | Required |
|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------|:---------|
| `status` | Defines which status or range of statuses should result in an error page.
The status code ranges are inclusive (`505-599` will trigger with every code between `505` and `599`, `505` and `599` included).
You can define either a status code as a number (`500`), as multiple comma-separated numbers (`500,502`), as ranges by separating two codes with a dash (`505-599`), or a combination of the two (`404,418,505-599`). | [] | No |
+| `statusRewrites` | An optional mapping of status codes to be rewritten. More information [here](#statusrewrites). | [] | No |
| `service` | The service that will serve the new requested error page.
More information [here](#service-and-hostheader). | "" | No |
| `query` | The URL for the error page (hosted by `service`).
More information [here](#query) | "" | No |
@@ -94,6 +109,15 @@ the [`passHostHeader`](../../../../routing/services/index.md#pass-host-header) o
!!!info "Kubernetes"
When specifying a service in Kubernetes (e.g., in an IngressRoute), you need to reference the `name`, `namespace`, and `port` of your Kubernetes Service resource. For example, `my-service.my-namespace@kubernetescrd` (or `my-service.my-namespace@kubernetescrd:80`) ensures that requests go to the correct service and port.
+### statusRewrites
+
+`statusRewrites` is an optional mapping of status codes to be rewritten.
+
+For example, if a service returns a 418, you might want to rewrite it to a 404.
+You can map individual status codes or even ranges to a different status code.
+
+The syntax for ranges follows the same rules as the `status` option.
+
### query
There are multiple variables that can be placed in the `query` option to insert values in the URL.
@@ -103,4 +127,5 @@ The table below lists all the available variables and their associated values.
| Variable | Value |
|------------|------------------------------------------------------------------|
| `{status}` | The response status code. |
+| `{originalStatus}` | The original response status code, if it has been modified by the `statusRewrites` option. |
| `{url}` | The [escaped](https://pkg.go.dev/net/url#QueryEscape) request URL.|