Traefik 2.5.2 regexredirect中间件正则为空跳转异常问题咨询
Traefik redirectregex 中间件异常问题解决方案
核心问题1:配置前缀拼写错误
你的第一条配置的标签前缀拼写错误,将traefik误写为treafik,导致Traefik无法识别这条正则规则,因此仪表盘显示regex字段为空,这是导致异常的核心原因。
次要问题:YAML 转义冲突
你使用双引号包裹配置值时,YAML语法会自动处理字符串内的转义字符,正则中写的www\.的单反斜杠会被YAML转义吃掉,最终传递到Traefik的正则会变为www.,不符合你的匹配预期,拼写修正后这个问题也会影响规则生效。
修正后的配置
双引号写法(需转义反斜杠)
- "traefik.http.middlewares.wwwtonone.redirectregex.regex=^https?://(?:www\\.)?(.+)" - "traefik.http.middlewares.wwwtonone.redirectregex.replacement=https://$${1}" - "traefik.http.middlewares.wwwtonone.redirectregex.permanent=true"
单引号写法(无需额外转义反斜杠)
- 'traefik.http.middlewares.wwwtonone.redirectregex.regex=^https?://(?:www\.)?(.+)' - 'traefik.http.middlewares.wwwtonone.redirectregex.replacement=https://$${1}' - 'traefik.http.middlewares.wwwtonone.redirectregex.permanent=true'
异常跳转原因说明
当regex字段为空时,Go正则会匹配输入URL的每一个字符间隙,每匹配到一次就执行一次替换逻辑,因此你配置的https://${1}会被重复插入到原URL的每个字符前,最终出现你观察到的畸形location返回值。
内容的提问来源于stack exchange,提问作者Timusan
相关产品推荐
相关产品推荐

