我有这个规则
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;
}