HAProxy 删除尾部斜杠

HAProxy remove trailing slashes

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

示例:

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 ^(.*)[\ /]$ 
    redirect prefix / code 301 if has_trailing_slash

参考:haproxy remove trailing slash

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

你的正则表达式最后只适用于一个 / 因为 .* 吃掉所有字符直到最后 /.

试试这个正则表达式:

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

.*? 让它在这里不贪心。

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