返回和重写如何工作?

返回和重写如何工作?
location /movies {
  return 301 nice.com
}
location /foo {
  rewrite /foo/(.*) /$1;
}

我正在访问http://localhost/foo/电影. url 被改为http://localhost/foo/nice.com。我想知道为什么因为这就是我的想法。

当访问http://localhost/foo/电影,它被重写为http://localhost/电影在内部。然后它开始从上到下处理并找到 /movies 端点。当找到后,它必须重定向到 nice.com 网站。但只有最后一部分发生变化。

答案1

您的return语句可能被解释为相对于原始 URI 的路径。

您需要使用 URL 语法来指定外部站点,例如:

return 301 https://example.com/;

这个文件了解详情。

相关内容