有人可以解释为什么这不像人们期望的那样工作吗?在下面的 nginx 配置中,假设第一个 nginx 将与正则表达式匹配的图像扩展块一起使用,并且只有在此之后它才会进入^~优先于其他所有内容的内部块。
无论范围如何,nginx 似乎都在着眼于更大的图景,并且^~ /images在外部正则表达式扩展块之前匹配诸如/images/something.png?
location ~* \.(css|js|jpg|png|gif|ico)$ {
expires 7d;
add_header Image-By-Extension 1;
}
location / {
location ^~ /images {
add_header Image-By-Folder 1;
...
}
}
Run Code Online (Sandbox Code Playgroud)
是的,nginx 必须选择一个位置,因此即使您正在嵌套这些位置,它也不会在稍后报告匹配项。当您使用~^运算符时,您告诉 nginx 避免查看正则表达式位置块,如果它是与当前请求 URI 匹配的最长前缀位置块。
我在这里解释了整个过程:Nginx 重写规则 403 错误。
| 归档时间: |
|
| 查看次数: |
4819 次 |
| 最近记录: |