我正在尝试通过正则表达式代理传递仅排除 casistic 的位置。
我有这个 url并且我仅当不同于时才/autocomplete/<var1>/<var2>
想要代理传递,因此,ecc 将被代理。var1
a
b/foo
c/foo
在 Apache 中我使用了这个:
ProxyPassMatch ^/autocomplete/a/(.*)$ !
ProxyPass /autocomplete/ http://localhost:1234/autocomplete/
在 NGINX 中我尝试这样做:
location ~ /autocomplete/(?<var1>.*)/(?<var2>.*) {
if ($var1 != "a") {
proxy_pass http://127.0.0.1:1234/autocomplete/$var1/$var2;
}
}
它适用于 的其他值var1
,但对于 ,a
它返回 404。
答案1
解决:
location ~ ^/autocomplete/(?!(a)) {
proxy_pass http://localhost:1234;
}