我在nginx中实现了一个proxy_pass规则,它只适用于某些链接。我的规则是:
server_name www.example.com
location ~ /en/(.*)$ {
resolver 8.8.8.8;
proxy_pass http://www.destinyweb.en/$1;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
我的目的是输入" www.example.com/en/index.jsp"并且proxy_pass将我的请求重定向到" www.destinyweb.en / index.jsp"。
当目标网络中的链接类似于" index.jsp"但是当链接类似于" /index.jsp"时,它不起作用; (在index.jsp之前使用斜杠)。一些链接有" /"在目标文件和其他目标之前没有。
当网站内容如此有效时:
<a href="index.jsp">Hello</a>
当网站内容如此不起作用时:
<a href="/index.jsp">Hello</a>
你们中的一些人知道一些正则表达式来解析这个&#34; /&#34;?
谢谢!
答案 0 :(得分:0)
您需要在/
正则表达式匹配中加入location
。如下所示:
location ~ ^/en(/.*)?$ {
匹配或不匹配前导斜杠。您还可以像这样修改proxy_pass
行:
proxy_pass http://www.destinyweb.en$1;
因为$ 1会包含或不包含/
原始请求。