我使用 HAProxy 在您访问时设置 cookiemydomain.com/dev
并重定向到mydomain.com
。
这样做的目的是提供一种访问网站开发版本而不是生产版本的方法,同时保持其他所有内容不变。
相关配置行如下所示:
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
现在,我不再重定向到根域,而是想删除 /dev 路径。因此,如果我转到根域,它将mydomain.com/foo/dev
设置 cookie 并重定向到mydomain.com/foo
使用 HAProxy 可以实现这一点吗,或者我需要在 apache 后端服务器中使用 mod_rewrite?
笔记:我不需要 mod_rewrite 规则,只是寻找在 HAproxy 中是否可以实现这一点。
答案1
您可以执行 URL 重写和 HTTP 标头操作(添加、修改和删除标头)。
但是,haproxy 文档指出不鼓励这样做,并且您的设置应该可以在客户端和真实服务器之间运行或不运行 haproxy 的情况下工作(无需重新配置)。根据此建议,最好使用 apache mod_rewrite。
答案2
您可以使用“reqrep”或“reqirep”命令执行此操作:
reqrep ^([^\ ]*)\ (.*)/dev \1\ /\2 if acl_dev