【问题标题】:Redirect www to non-www not working in Traefik 2将 www 重定向到非 www 在 Traefik 2 中不起作用
【发布时间】:2020-04-10 22:43:02
【问题描述】:

我设置 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"

【问题讨论】:

    标签: docker traefik


    【解决方案1】:

    定义重定向中间件是不够的,还需要和定义的路由器一起使用

    这是你的中间件定义

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

    您可能还需要添加此标签

    traefik.http.middlewares.test-redirectregex.redirectregex.permanent=true
    

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

    - "traefik.http.routers.node-secure.middlewares=test-redirectregex"
    

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

    【讨论】:

    • 我们为什么要使用这个标签?我应该为我使用相同的吗? $${1}谢谢。
    • $${1} 将具有匹配正则表达式 (.*) 的值(域名后的所有字符)。我猜你需要它,除非你只想重定向主页
    • 天哪,traefik.http.routers.node-secure.middlewares=test-redirectregex 是我一直在寻找的该死的关键字!非常感谢你!业力点给你!
    • 仅供参考:我做了几个docker-compose restarts,但这还不够。你需要上/下你的容器。
    【解决方案2】:
    - "traefik.http.routers.node-secure.middlewares=test-redirectregex"
    

    【讨论】:

    • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常质量更高,更有可能吸引投票。
    猜你喜欢
    • 2022-08-03
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    相关资源
    最近更新 更多