Nginx实现HTTP重定向到HTTPS

220次阅读
没有评论

  • Nginx实现HTTP重定向到HTTPS
  • Nginx实现HTTPS重定向到HTTP
  • Nginx实现带WWW重定向到不带WWW
  • Nginx实现不带WWW重定向到带WWW

方式一:通过return指令实现重定向

server {
        listen 80;
        server_name localhost;
        return 301 https://$host$request_uri;
    }

说明,return 301 https://$host$request_uri; 该指令执行301永久重定向,将用户请求的 URL 转换为 HTTPS 版本。$host 变量表示请求中的主机名,$request_uri 变量则包含请求的完整 URI(包括查询参数)。
保存配置后重启或重新加载nginx,以使更改生效。

方式二:通过rewrite重写模块实现重定向

server {
    listen 80;
    server_name localhost;
    rewrite ^ https://$host$request_uri permanent;
}

说明,rewrite ^ https://$host$request_uri permanent; 该指令执行重定向操作:
^: 表示匹配所有请求的 URI。
https://$host$request_uri: 构建重定向的目标 URL,其中 $host 变量代表请求中的主机名,$request_uri 变量包含请求的完整 URI(包括查询参数)。
permanent: 指定这是一个永久重定向(301),告知浏览器和搜索引擎应更新其链接。

当用户通过 HTTP 访问网站时,Nginx 会匹配到该 server 块,并执行 rewrite 指令。Nginx 将请求的 URI 进行重写,构建出 HTTPS 的 URL,并返回一个 301 永久重定向响应。浏览器接收到这个响应后,会自动重定向到 HTTPS 版本的 URL。

虽然 rewrite 指令可以实现 HTTP 到 HTTPS 的重定向,但在大多数情况下,使用 return 指令更为简单和高效。return 指令直接返回响应,处理速度更快,而 rewrite 指令会在内部进行更复杂的处理。因此,对于简单的重定向,推荐使用 return 指令。

正文完
 0
wujingquan
版权声明:本站原创文章,由 wujingquan 于2024-11-15发表,共计879字。
转载说明:Unless otherwise specified, all articles are published by cc-4.0 protocol. Please indicate the source of reprint.
评论(没有评论)