不过还有一点无法确定, 即使先匹配到了后面的规则, 那也不能说明前面的规则就不走了啊. nginx也有可能是按照顺序依次进行匹配的.
为了验证, 我们将第三个配置规则中的return 100删掉....400;
}
location ~ php$ {
return 500;
}
}
配置文件中两个正则匹配, 我的想法是这样的, 此时访问, 会返回响应吗 400,...至此, nginx的匹配规则基本上已经复现出来了.
按照优先级从高到低的顺序进行匹配
相同优先级的, 按照配置文件中的顺序进行匹配
当匹配到一条规则之后, 停止后续匹配....不行, 因为优先级相同, 先匹配到前面的 php 正则匹配, 后面的限制没有效果
将规则^~改成~并提到前面? 不行, 因为优先级相同, 先匹配到限制, 如果通过不会进行后面的 php 解析....通过将php文件的解析配置单独放到一个配置文件php-fpm.conf.common文件中, 内容如下:
location ~ \.php${
// ...
}
这样, 原本的配置文件就可以改写成如下形式了