我有以下规则:
location /foo {
以下示例适用:
mydomain.com/foo
mydomain.com/foo/
mydomain.com/foo/bar?example=true
然而它也匹配
mydomain.com/foobar
我不希望它与最后一个匹配(/ foobar),它应该只匹配foo后面没有任何内容,或斜杠和后面的零个或多个字符。我尝试过 location / foo / {,但这也不会产生预期效果。
有人能说清楚如何做到这一点吗?
答案 0 :(得分:1)
有两种方法可以处理此问题,使用正则表达式location
阻止 - 或者只是/foo
分别处理/foo/
。
正则表达式location
块具有不同的评估顺序,效率低于前缀location
块,因此我首选的解决方案是完全匹配location
和前缀location
。
通常,/foo
只会重定向到/foo/
,例如:
location = /foo {
return 302 /foo/;
}
location /foo/ {
...
}
有关详情,请参阅this document。
答案 1 :(得分:-1)
您可以为/ foobar创建一个位置规则,无论您是否需要它作为例外:
list_item.xml
Nginx匹配第一个URI by =运算符。