我有一堆图像(95%JPEG,4.9%PNG和0.1%GIF)按顺序编号,但有时会有非均匀扩展(1.jpg,2.jpg,3.png,4。 jpg,...)。
我希望能够在没有指定扩展名的情况下请求图像并让nginx进行适当的重定向。我目前正在使用try_files
,但它没有重定向:
location ~ '^/i/(\d+)/(\d+)$' {
try_files $1/$2.jpg $1/$2.png $1/$2.gif;
}
nginx文档说使用if
检查文件是否存在是不好的,但我真的不知道如何做到这一点。我该怎么办?
if file has extension:
serve it and 404 if it doesn't exist
else:
if file + .jpg exists, redirect
elif file + .png exists, redirect
elif file + .gif exists, redirect
404 if everything else failed
答案 0 :(得分:0)
这是我的解决方案:
root /some/path;
if ($uri ~ ^/(books/\d+/\d+)$) {
set $path $1;
}
if (-f "/some/path/$path.jpg") {
return 301 "$path.jpg";
}
if (-f "/some/path/$path.png") {
return 301 "$path.png";
}
if (-f "/some/path/$path.gif") {
return 301 "$path.gif";
}
它不漂亮,但它有效。