2015-11-03 213 views
1

我对像图像的位置设置: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

任何想法如何我可以排除这第一部分?

回答

1

首先,我会用正面位置包装正则表达式位置。这隔离了正则表达式的位置,并避免与其他人发生冲突。因此,您的配置将更顺利地扩展。

如果这个目录中只有图像,那么捕获/ images /后面的所有内容并且不用担心文件扩展名会更简单。然后您可以自由地进行区分大小写的比赛,速度更快一些。

location /images/ { 
    location ~ ^/images/(?<img_path>.+) { 
     try_files /disk/$img_path /images?uri=$img_path; 
    } 
}