我想将 2 个不同的地址重写为同一个目标地址。可以这样做吗?
location = /foo/bar/, /to/fu/ {
return 301 /re/bar/;
}
或者我必须创建两个单独的重定向?
location = /foo/bar/ {
return 301 /re/bar/;
}
--
location = /to/fu/ {
return 301 /re/bar/;
}
答案1
虽然您可以使用正则表达式而不是位置路径来实现这一点,但我不建议这样做。最终您会得到一个复杂的配置文件,这使得它很难维护。
我可能会删除位置条目而使用多次重写,因为这会给我一个更好的概述,如下所示:
server_name_in_redirect on;
rewrite /foo/bar/ /re/bar/ permanent;
rewrite /to/fu/ /re/bar/ permanent;
在我看来,这可以让你轻松看到你正在使用的重定向以及如何添加更多重定向。但这完全是个人喜好,使用位置并没有错!
答案2
精细手册表示不允许使用逗号分隔多个 URI,您必须使用两个单独的块,或者进行正则表达式匹配。