是否有可能在redirect中删除HAProxy中的部分path?

当您访问mydomain.com/dev并redirect到mydomain.com时,我正在使用HAProxy设置cookie。

这样做的目的是提供一种访问站点的开发版本而不是生产站点的方法,同时保持其他所有内容相同。

相关的configuration行如下所示:

 frontend webfarm 1.2.3.4:80 acl acl_dev path_end /dev redirect location / code 302 set-cookie SERVERID=live03 if acl_dev default_backend default_farm 

现在,而不是redirect到根域,我只想剥离掉/ devpath。 所以如果我去mydomain.com/foo/dev它会设置cookie并redirect到mydomain.com/foo

这可能与HAProxy,或者我需要在Apache后端服务器中使用mod_rewrite?

注意 :我不需要一个mod_rewrite规则,只需要在HAproxy中查找是否可行。

您可以执行URL重写和HTTP标头操作(添加,修改和删除标头)。

然而,haproxy文档指出,这不被鼓励,你的设置应该工作(无需重新configuration),而不必在客户端和真实服务器之间运行haproxy。 遵循这个build议,最好使用apache mod_rewrite。

您可以使用“reqrep”或“reqirep”命令来执行此操作:

 reqrep ^([^\ ]*)\ (.*)/dev \1\ /\2 if acl_dev