You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Traefik将裸域名重定向至www域名的问题排查

问题原因及解决方案

你的问题出在重定向中间件的正则表达式上——原来的规则会匹配所有域名(包括已带www前缀的),然后统一给捕获到的内容再加上www,导致www.example.com被处理成www.www.example.com。

修复步骤:修改重定向中间件的正则规则

把中间件的正则改成只匹配不带www前缀的裸域名,同时保留原请求的路径和参数:

traefik:
  image: traefik
  # ...
  labels:
    # 仅匹配无www前缀的域名,捕获域名主体和后续路径
    traefik.http.middlewares.nakedtowww.redirectregex.regex: ^https?://(?!www\\.)([^/]+)(.*)
    # 替换为带www的域名,拼接原路径/参数
    traefik.http.middlewares.nakedtowww.redirectregex.replacement: https://www.$1$2
    traefik.http.middlewares.nakedtowww.redirectregex.permanent: true

原理说明

  • (?!www\\.)是负向前瞻断言,确保当前位置的域名不是以www.开头的,避免重复处理带www的请求
  • ([^/]+)捕获裸域名(比如example.com),(.*)捕获域名后的路径、查询参数等内容
  • 替换规则https://www.$1$2会把裸域名加上www.前缀,同时完整保留原请求的路径和参数

验证效果

  • 访问https://example.com或https://example.com/test?foo=bar,会自动重定向到https://www.example.com或https://www.example.com/test?foo=bar
  • 直接访问https://www.example.com不会触发重定向,可正常访问服务

内容的提问来源于stack exchange,提问作者lonix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:20:09