Traefik RedirectRegex配置问题:重定向丢失路径与查询参数
解决Traefik RedirectRegex重定向丢失路径和查询参数的问题
你的当前配置问题出在正则表达式未正确捕获请求的路径与查询参数,且替换逻辑中的$${2}没有对应的分组匹配,导致无法传递后续内容。
正确配置方案
只需要调整中间件的正则和替换规则,就能实现所有场景的重定向需求:
- "traefik.http.routers.redirect-router.entrypoints=https" - "traefik.http.routers.redirect-router.rule=Host(`oldwebsite.com`)" - "traefik.http.routers.redirect-router.middlewares=redirect-regex" - "traefik.http.middlewares.redirect-regex.redirectregex.regex=^(.*)$" - "traefik.http.middlewares.redirect-regex.redirectregex.replacement=https://new-website.domain.com/internal$${1}" - "traefik.http.middlewares.redirect-regex.redirectregex.permanent=true"
配置说明
- 正则表达式
^(.*)$:捕获整个请求的URI(包含路径和查询参数),作为第一个分组$${1} - 替换规则
https://new-website.domain.com/internal$${1}:- 当请求为根域名(URI为空)时,
$${1}为空,最终重定向到https://new-website.domain.com/internal - 当请求带路径(如
/12345)或路径+查询参数(如/12345/orders?id=12)时,$${1}会完整保留这些内容,追加到/internal后,实现精准重定向
- 当请求为根域名(URI为空)时,
不需要使用$${2}和$${3},单个分组即可覆盖所有场景,同时自动保留查询参数。
内容的提问来源于stack exchange,提问作者andrey1567
相关产品推荐
相关产品推荐

