NGINX 将 2 个地址重写到同一目的地

NGINX 将 2 个地址重写到同一目的地

我想将 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,您必须使用两个单独的块,或者进行正则表达式匹配。

相关内容