Nginx的try_files忽略路径
问题描述:
我对像图像的位置设置:Nginx的try_files忽略路径
location ~* ^/images/.+\.(jpg|jpeg|gif|png)$ {
try_files /disk/$uri /images?uri=$uri;
}
的$uri
包括images
名。当我访问/images/one/two/three/item.jpg
时,我想从try_files中排除images
。所以访问这应该实际上是尝试/disk/one/two/three/item.jpg
。
任何想法如何我可以排除这第一部分?
答
首先,我会用正面位置包装正则表达式位置。这隔离了正则表达式的位置,并避免与其他人发生冲突。因此,您的配置将更顺利地扩展。
如果这个目录中只有图像,那么捕获/ images /后面的所有内容并且不用担心文件扩展名会更简单。然后您可以自由地进行区分大小写的比赛,速度更快一些。
location /images/ {
location ~ ^/images/(?<img_path>.+) {
try_files /disk/$img_path /images?uri=$img_path;
}
}