Nginx IP 到域名重定向

Nginx IP 到域名重定向

我有一个新的服务器,它将所有 DNS 请求重定向到 https 再重定向到域名。我在从 IP 地址重定向时遇到问题,因此我添加了return 301 https://$host$request_uri;以下内容。

return 301 https://$host$request_uri;从 IP 重定向到域名的正确方法是什么?

server {
    if ($host = www.example.ext) {
        return 301 https://$host$request_uri;
    } 


    if ($host = example.ext) {
        return 301 https://$host$request_uri;
    } 


        listen 80 default_server;
        listen [::]:80 default_server;

        server_name example.ext www.example.ext;
        return 301 https://$host$request_uri;

答案1

通常用于重定向的 HTTP 状态有四种,许多开发人员倾向于默认使用301。虽然这会产生预期的效果,但它可能并不总是最好的状态代码。

以下是选项:

代码 定义 何时使用
301 永久移动 域名或特定 URL曾经有效已发生改变。浏览器将缓存此重定向,并且不会再次查找 DNS 路由。
302 成立 URL 有效,但已暂时移至其他地方。浏览器会将重定向缓存一小段时间(通常为几分钟),如果将来再次使用该 URL,则会重试。
307 临时重定向 正在构建/重建服务器,在工作进行期间,应将访问者发送到其他地方。浏览器会将此重定向缓存一小段时间(通常为几分钟),然后稍后重试 DNS 查找。
308 永久重定向 请求的资源可能存在也可能不存在,流量应该被发送到新位置。浏览器将缓存此重定向,并且不会再次查找 DNS 路由。

对于您的情况,a301是“足够的”,但是,如果访问者不应该通过裸 IP 地址与您的服务器进行交互,那么 a308可能更准确。

一个简短的经验法则:

  • URL曾经有效? 使用 301/302。
  • URL从未有效? 使用 307/308。

相关内容