Nginx 环境 SSL 强制 HTTP 301 跳转到 HTTPS

2017-07-27
1分钟阅读时长

今天在给服务器 SSL,配置成功后需要将 HTTP 用 301 跳转至 HTTP,才能统一 HTTPS 入口。

首先需要找到 Nginx 的配置文件:

/usr/local/nginx/conf/vhost

这是默认的地址,如果自定义了地址,就按照实际情况进行操作。

然后在 server{…} 里面插入一个 if 判断:

if ($scheme = http) {
    return 301 https://$host$request_uri;
}

大概的意思就是, 如果 scheme 是 http,则返回 301 状态码,并重定向至 https:// 域名 地址还有一种就是判断端口的:

if ($server_port = 80) {
    return 301 https://$host$request_uri;
}

因为 http 是走 80 端口的,而 https 是443,所以对端口进行判断也是可以的。

最后保存配置文件,并重启 Nginx 服务。

这是一篇过去很久的文章,其中的信息可能已经有所发展或是发生改变。

本文作者:她和她的猫
本文地址https://her-cat.com/posts/2017/07/27/nginx-force-301-to-jump-to-https/
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!