有人能解释一下为什么这不像人们所期望的那样有效吗?在下面的nginx配置中,假设第一个nginx将与正则匹配的图像扩展块一起使用,然后它才会进入^~优先于其他所有内容的内部块。
看起来nginx不管范围如何,都在考虑更大的问题,并在外部regex扩展块之前匹配^~ /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;
...
}
}发布于 2014-10-12 15:44:43
是的,nginx必须选择一个位置,所以即使您要嵌套这些位置,也不会在以后报告匹配情况。当您使用~^运算符时,您告诉nginx避免查看regex位置块,如果它是与当前请求URI匹配的最长前缀位置块。
我在这里解释了整个过程:Nginx rewite规则403错误。
https://serverfault.com/questions/636431
复制相似问题