访问https://myexample.com/adminui/服务器发送303时,我在浏览器中收到响应,如下所示
http://uaa.devtest3.io/oauth/authorize?response_type=code&client_id=admin_ui_client&redirect_uri=https://admin.devtest3.io/login
我希望它能改变它
http://myexample.com/oauth/authorize?response_type=code&client_id=admin_ui_client&redirect_uri=https://myexample.com/adminui/login
我在haproxy.config文件中尝试了以下条目,但这不起作用。
resirep ^Location:\ http://uaa.devtest3.io/oauth/authorize?response_type=code&client_id=admin_ui_client&redirect_uri=https://admin.devtest3.io/login Location:\ http://myexample.com/uaa/oauth/authorize?response_type=code&client_id=admin_ui_client&redirect_uri=https://myexample.com/adminui/login
已更新 我需要进一步帮助改变
https://uaa.devtest3.io/login;jsessionid=4A0ADA8DDB7CD09C2B50F4A41945BBDB to https://myexample.com/uaa/login;jsessionid=4A0ADA8DDB7CD09C2B50F4A41945BBDB
我试过这个
rspirep ^Location:\ (https?://uaa.devtest3.io;jsessionid=([0-9A-Z](.*) )Location:\ myexample.com \3 if hdr_location
这不起作用。我觉得正在使用的正则表达式是错误的。我不是这个正则表达的诗句。 请指导我这个
答案 0 :(得分:1)
首先,就我所知,resirep
命令似乎不存在。我认为你需要的命令是rspirep
。其次,如果您使用的是HAProxy 1.5或更低版本,则需要转义/
,&
和?
以及空格。
产生的配置:
rspirep ^Location:\ http:\/\/uaa.devtest3.io\/oauth\/authorize\?response_type=code\&client_id=admin_ui_client\&redirect_uri=https:\/\/admin.devtest3.io\/login Location:\ http:\/\/myexample.com\/uaa\/oauth\/authorize\?response_type=code\&client_id=admin_ui_client\&redirect_uri=https:\/\/myexample.com\/adminui\/login
希望有所帮助。
更新*已修复
rspirep ^Location:\ https:\/\/uaa.devtest3.io\/login;jsessionid=([0-9A-Z]*) Location:\ https:\/\/myexample.com\/uaa\/login;jsessionid=\1
([0-9A-Z]*)
- 匹配并捕获包含大写字母和数字的任意长度的字符串。
\1
- 将第一个捕获的字符串放在此处
*在HAProxy 1.5.15中测试。