将 www 重定向到非 www 在 Traefik 2 中不起作用

web*_*ace 4 docker traefik

我设置了 Traefik 来管理我的 docker 容器,但我可以将 www 重定向到我的域的非 www。我已经尝试了论坛中的所有内容,但没有运气

labels:
  - "traefik.enable=true"
  - "traefik.http.routers.node.entrypoints=http"
  - "traefik.http.routers.node.rule=Host(`awebsite.com`) || Host(`www.awebsite.com`)"
  - "traefik.http.middlewares.vk-https-redirect.redirectscheme.scheme=https"

  - "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^https://www.awebsite.com/(.*)"
  - "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=https://awebsite.com/$${1}"

  - "traefik.http.routers.node.middlewares=vk-https-redirect"
  - "traefik.http.routers.node-secure.entrypoints=https"
  - "traefik.http.routers.node-secure.rule=Host(`awebsite.com`) || Host(`www.awebsite.com`)"
  - "traefik.http.routers.node-secure.tls=true"
  - "traefik.http.routers.node-secure.tls.certresolver=http"
  - "traefik.http.routers.node-secure.service=node"
  - "traefik.http.services.node.loadbalancer.server.port=8000"
  - "traefik.docker.network=proxy"
Run Code Online (Sandbox Code Playgroud)

Al-*_*deh 8

定义重定向中间件还不够,你还需要将它与定义的路由器一起使用

这是你的中间件定义

 - "traefik.http.middlewares.test-redirectregex.redirectregex.regex=^https://www.awebsite.com/(.*)"
 - "traefik.http.middlewares.test-redirectregex.redirectregex.replacement=https://awebsite.com/$${1}"
Run Code Online (Sandbox Code Playgroud)

您可能也需要添加此标签

traefik.http.middlewares.test-redirectregex.redirectregex.permanent=true
Run Code Online (Sandbox Code Playgroud)

但您从未在任何定义的路由器中使用过它。例如,如果您希望将此应用于node-secure路由器,则需要添加此标签

- "traefik.http.routers.node-secure.middlewares=test-redirectregex"
Run Code Online (Sandbox Code Playgroud)

可以在本文中找到更多信息、详细信息和示例