对于不包括子文件夹的图像文件,请更正nginx规则



我有这个规则

location ~ ^/images/cars/(.*) {
return 301 /images/car/regular/gallery/$1;
}

但我也想重定向/images/car/*.jpg文件。如果我做这个

location ~ ^/images/car/(.*) {
return 301 /images/car/regular/exterior/$1;
}

那么第一条规则是递归的。因此,我的问题是如何排除此模式中的子文件夹~ ^/images/car/(.*),以避免占用/images/car/folder/folder/folder/123.jpg,而只占用/images/car/imagefile.extension

正则表达式^/images/car/(.*)过于宽松,需要仅限于需要重定向的URI。

如果您只想捕获文件名,请使用与任何非/字符匹配的[^/]。此外,您需要使用$来锚定到字符串的末尾。

例如:

location ~ ^/images/car/([^/]+)$ {
return 301 /images/car/regular/exterior/$1;
}

最新更新