Inspired by: https://github.com/XciD/traefik-plugin-rewrite-headers and https://github.com/Connection-Loops/traefik-plugin-rewrite-headers
Rewrite headers is a middleware plugin for Traefik which replace a header in the request and/or response
The only additional feature it has is, it supports manipulating Host header too. Which is not possible with original repos.
experimental:
plugins:
rewriteHeaders:
moduleName: "github.com/Connection-Loops/traefik-plugin-rewrite-headers"To configure the Rewrite Request Header plugin you should create a middleware in your dynamic configuration as explained here. The following example creates and uses the rewriteHeaders middleware plugin to modify the Location header
http:
routes:
my-router:
rule: "Host(`localhost`)"
service: "my-service"
middlewares :
- "rewriteHeaders"
services:
my-service:
loadBalancer:
servers:
- url: "http://127.0.0.1"
middlewares:
rewriteHeaders:
plugin:
rewriteHeaders:
rewrites:
request:
- header: Location
regex: "^http://(.+)$"
replacement: "https://$1"
response:
- header: Location
regex: "^http://(.+)$"
replacement: "https://$1"Label based configuration
- traefik.http.middlewares.rewriteHeaders.plugin.rewriteHeaders.rewrites.request[0].header = Location
- traefik.http.middlewares.rewriteHeaders.plugin.rewriteHeaders.rewrites.request[0].regex = ^http://(.+)$
- traefik.http.middlewares.rewriteHeaders.plugin.rewriteHeaders.rewrites.request[0].replacement = https://$1
- traefik.http.middlewares.rewriteHeaders.plugin.rewriteHeaders.rewrites.response[0].header = Location
- traefik.http.middlewares.rewriteHeaders.plugin.rewriteHeaders.rewrites.response[0].regex = ^http://(.+)$
- traefik.http.middlewares.rewriteHeaders.plugin.rewriteHeaders.rewrites.response[0].replacement = https://$1