我在 Ubuntu 中的 Nginx 本地主机上托管了一个简单的静态站点。但重定向代码给我错误“页面未正确重定向”。
提供问题的重定向代码是:
return 301 https://$host$request_url;
我指的是官方文档。
我的 Nginx 代码如下。
产生错误的过程是:
a.如果没有重定向代码,即“return 301 https://$host$request_url;”。然后打开“https://localhost”效果很好。虽然 http://localhost 不起作用。
b.我添加了重定向代码,以便 http 重定向到 https。但它给了我“页面未正确重定向”。这里“http://localhost”确实重定向到“https://localhost”,但页面未正确重定向。见下图:
如何解决?
在您的 Nginx 代码中,您将使用 301 回复 HTTPS 请求。您需要另一个部分,其中 HTTP 请求将 301 重定向到 HTTPS 进行回复。
也就是说,第二个
server { ... }
块侦听端口 80,并且该块是重定向的块,而不是侦听端口 443 的块。
您基本上创建了一个循环,其中 HTTPS 请求重定向到自身。