【问题标题】:Traefik merge slashesTraefik 合并斜线
【发布时间】:2020-01-29 21:21:01
【问题描述】:

我正在尝试在 docker-compose 文件中的一个容器上实现 Traefik 的重定向配置。我在 Nginx 服务配置中发现了一个类似的配置,叫做merge_slashes。这与我想要实现的行为完全相同。

尝试了此处描述的 Nginx 服务的正则表达式替代方法:https://www.ctrl.blog/entry/relative-double-slashes-url.html

rewrite ^(.*)//(.*)$ $1/$2;
rewrite ^ $uri permanent;

但这种方法不适用于 Traefik。

  labels:
      traefik.merge_slashes.frontend.rule: 'Host:${PROJECT_BASE_URL}'
      traefik.merge_slashes.frontend.redirect.regex: '(.*)\\/\\/+(.*)'
      traefik.merge_slashes.frontend.redirect.replacement: '$${1}/$${2}'
      traefik.merge_slashes.frontend.redirect.permanent: 'true'

【问题讨论】:

    标签: redirect merge docker-compose traefik nginx-config


    【解决方案1】:

    使用以下配置可以达到预期效果:

    labels:
          traefik.merge_slashes.frontend.rule: 'Host:${PROJECT_BASE_URL}'
          traefik.merge_slashes.frontend.redirect.regex: '(.*\\:\\/\\/.*)\\/\\/+(.*)'
          traefik.merge_slashes.frontend.redirect.replacement: '$${1}/$${2}'
          traefik.merge_slashes.frontend.redirect.permanent: 'true'
    

    但这可能会导致 URL 出现过多重定向问题,例如: http://localhost/some/////////////////////////////////////////////example///url

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-12
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-27
      • 2019-03-08
      相关资源
      最近更新 更多