示例:
location /images/a/ {
return 200;
}
location ~ /images/a/test.png$ {
return 502;
}
location ^~ /images/{
return 501;
}
我的困惑是当我访问http://website.com/images/a/test.png,响应代码是502,而不是501
来自nginx如何处理请求:
nginx首先搜索由文字字符串给出的最具体的前缀位置,而不考虑列出的顺序。
因此所选前缀位置为location /images/a/
。由于该位置未使用^~
修饰符进行标记,因此正则表达式位置将按顺序进行处理,直到找到匹配。