我想创建一个匹配除
之外的所有位置http://uri/proxy-wmts
例如:
http://uri/proxy/toto
http://uri/proxy?param=value
我出来了:
location ~ ([^/]*)/proxy(\-[^w][^m][^t][^s])*
但我觉得它有点难看,我正在寻找一个更清洁的解决方案。
答案 0 :(得分:1)
正如我在评论中已经说过的那样,使用正确的location
顺序会更容易,性能更高(匹配常量字符串比正则表达式更快)。
location = /proxy-wmts {} # matches *exactly* /proxy-wmts
location /proxy {}
或
location /proxy-wmts {} # also matches /proxy-wmts....
location /proxy {}
几乎可以做你想要的。
<小时/> 您可以在此处应用的一个正则表达式是zero-length negative lookahead assertion
(?!...)
:
location ~ ([^/]*)/proxy(?!-wmts)
哪个匹配
/uri/proxy
/uri/proxy-abc
/uri/proxy/abc
...
但不适用于
/uri/proxy-wmts
/uri/proxy-wmts-abc
/uri/proxy-wmts/abc