那问了, 有可能是因为两个匹配规则的优先级不同, 故而忽略了优先级低的匹配规则.
为了验证nginx对于相同优先级的匹配规则, 是否会进行后续匹配, 再次进行实验....很好, 符合预期, 然后将第一个规则中的return删除, 再次访问:
?
这次返回了 404, 这说明, nginx在执行到第一个匹配的时候, 就停止匹配, 不再进行后续匹配了....至此, nginx的匹配规则基本上已经复现出来了.
按照优先级从高到低的顺序进行匹配
相同优先级的, 按照配置文件中的顺序进行匹配
当匹配到一条规则之后, 停止后续匹配....xxx: 路径正则匹配
location ~* xxx: 路径正则匹配, 不区分大小写, 与正则匹配的优先级相同
location /xxx : 路径前缀匹配
location / : 通用匹配, 当其他都没有匹配的时候..., 会走到这里.
nginx会按照优先级从高到低依次进行匹配, 在第一个匹配成功的时候执行操作并停止匹配.