# 案例
server {
listen 80;
server_nmae ...;
#规则一
location /pro {
...
}
#规则二
location ~ \. (gif|jpg|png)$ {
...
}
}
#流程分析
当我们 /pro/a.jpg 时,会符合规则一进入待定,继续往下查,进入规则二发现符合.jpg ,且前面有正则进行参与且正则匹配(那意思就是优先级提高),则直接进规则二
这时我们再添加一个规则 如下
#规则三
location ~ /pro {
...
}
这时就需要注意规则三放的位置了,如果放到规则1和2的前面,则直接规则三返回
如果放到规则2的后面,则直接规则二返回
总结
所以在符合匹配条件下,普通匹配看的不是位置的先后(选符合路径最长的那个),正则匹配看的是位置(只要满足直接返回),当所有的正则匹配都不符合下,则选取最长符合的那个普通匹配。 -- 普通命中顺序无所谓,是因为按命中的长短来确定。正则命中,顺序有所谓,因为是从前往后命中的。
相信你已经懂了,那就再额外注意一个这个吧(压轴)!
当我有以下的两个location块时 ,我的访问路径为/product/a.jpg ,结果是什么 ...