HAProxy删除尾部斜杠

时间:2015-09-07 15:46:18

标签: regex load-balancing haproxy

我需要将所有网址重定向到带有非尾部斜杠的网址

示例:

  

http://www.example.com/education/ - > http://www.example.com/education

     

http://www.example.com/blah// - > http://www.example.com/blah

     

http://www.example.com/blah/blah/// - > http://www.example.com/blah/blah

这就是我现在所拥有的:

frontend localnodes
    bind 127.0.0.1:80

    acl has_trailing_slash path_end  /
    reqrep ^(.*)[\ /]$ \1
    redirect prefix / code 301 if has_trailing_slash

参考:haproxy remove trailing slash

但这只是让浏览器进入301s的重定向循环。我如何实现这一目标?

1 个答案:

答案 0 :(得分:2)

您的正则表达式最终仅适用于一个/,因为.*会将所有字符都放到最后/

试试这个正则表达式:

^(.*?)[\/]+$ \1

.*?让这里不贪婪。

[/]+代表一个或多个斜杠。