- 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 指令。
正文完