我有一个位置设置图像,如:
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
。
知道如何排除第一段吗?
答案 0 :(得分:1)
首先,我将使用前缀位置包装正则表达式位置。这会隔离正则表达式位置并防止其与其他人发生冲突。结果,您的配置将更加平滑。
如果此目录中只有图像,那么在/ images /之后捕获所有内容会更简单,而不用担心文件扩展名。然后,您可以自由地进行区分大小写的匹配,这会更快一些。
location /images/ {
location ~ ^/images/(?<img_path>.+) {
try_files /disk/$img_path /images?uri=$img_path;
}
}