NGINX下由 http强制跳转 https 的几种方法
2021-06-03 Web
现在越来越多的网站都开启了 https 访问了,一来安全,二来对搜索引擎也比较友好。三来嘛,肯定是市面上有大量的免费 SSL 证书,比如腾讯云、阿里云和景安都有提供免费的证书。在这里记录一下 http 强制跳转 https 的方法,
我们要先配置好一个监听 443 端口的 server,然后就可以在监听 80 端口的 server 做以下的修改了。
正常来说,这个 server 是这样的
listen 80;
server_name www.aaaa.com;
…….
listen 80;
server_name www.aaaa.com;
…….
我们直接在这两行的下面添加
方法一 (这是最古老的写法,不推荐)
rewrite ^(.*)$ https://$host$1 permanent;
rewrite ^(.*)$ https://$host$1 permanent;
方法二 (比较推荐)
return 301 https://$server_name$request_uri;
return 301 https://$server_name$request_uri;
方法三 如果你有多个域名绑定在一起,可以只设定某些域名强制跳转
if ($host = “xxx.com”) {
rewrite ^/(.*)$ https://$server_name.com permanent;
}
if ($host = “xxx.com”) {
rewrite ^/(.*)$ https://$server_name.com permanent;
}
方法四
方法四跟之前的都不一样,我们不需要另外监听 443 端口的 server,而是都放在一起,像这样
listen 80;
listen 443 ssl http2;
server_name xxxx.com www.xxxx.com;
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
listen 80;
listen 443 ssl http2;
server_name xxxx.com www.xxxx.com;
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
版权属于: vincent
转载时须注明出处及本声明
Tags:# nginx