如何 redirect/rewrite URL 使用 HAProxy(更改上下文路径)

How to redirect/rewrite URL using HAProxy (change context path)

此问题与 HAProxy 1.4.27 有关。 我有一个可以使用上下文路径“/foo/foobar?...”访问的应用程序,如下所示:

http://www.myserver.com/foo/foobar 
or 
http://www.myserver.com/foo/foobar/showDetails.do?id=1002

上下文路径最近已更改为“/foobar”,但用户已将旧网址添加为书签。我试图使用 haproxy.cfg 中的 'redirect' 配置将用户重定向到新上下文,但这仅在 url 完全匹配时才有效。有没有办法配置 haproxy.cfg 重定向到

http://www.myserver.com/foobar 
or
http://www.myserver.com/foobar/showDetails.do?1002

这是我正在使用的重定向配置:

redirect location /foobar/ if { url /foo/foobar/}

我也尝试使用 'reqirep',但无法正确配置它(haproxy 进程在尝试重新启动时抛出错误)。

在这方面的任何帮助将不胜感激。

显然,版本 1.4.2x 不支持 URL 重写(即使 URL 重定向在服务器端使用 'reqirep' 工作)。我们将升级到支持该功能的版本 1。5.x。

发布此答案,以帮助遇到相同情况的人。