LNMP下HTTP强制跳转HTTPS的几种写法

现在越来越多的网站都启用https访问了,SSL证书也不贵,还有一些免费的比如Let\’s Encrypt或者腾讯也有提供1年免费证书等等,加上https有更好的安全性,甚至有人说以后搜索引擎都更青睐https的网站…今天就记录下在HTTP强制跳转HTTPS的几种方式方法,方便哪天我要加SSL的时候使用。

我们需要修改域名配置文件,这里我以军哥LNMP环境为例,路径在/usr/local/nginx/conf/vhost/

如上图,选择部分就是添加的跳转内容,通常我们有多种写法方式,下面列举。

No.1 if ($scheme = http ) { return 301 https://$host$request_uri; } No.2 server_name zrblog.net ; rewrite ^(.*) https://www.zrblog.net$1 permanent; No.3 if ($server_port = 80 ) { return 301 https://$host$request_uri; } No.4 server_name zrblog.net ; return 301 https://$server_name$request_uri;

延伸:

如果网站不是采用的NGINX而是APACHE,那就更加简单了,直接在网站根目录修改.htaccess文件,加入:

RewriteEngine On RewriteCond %{HTTP_HOST} !^www.zrblog.net$ [NC] RewriteRule ^(.*)$ https://www.zrblog.net/$1 [L,R=301] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.zrblog.net/$1 [L,R=301]

这样的话,除了不加www的域名访问,也会自动跳转到www域名并HTTPS访问。 NGINX的其他写法方式:

rewrite ^(.*)$? https://$host$1 permanent; #1 return 301 https://$server_name$request_uri; #2 if ($host ~* \"^zrblog.net$\") { rewrite ^/(.*)$ https://www.zrblog.net/ permanent; } #3 if ($host = www.zrblog.net) { rewrite ^/(.*)$ https://www.zrblog.net permanent; } #4

以上搜集自网络,如有错漏,请大家帮忙指正!谢谢。

推荐站内搜索:cn域名备案、虚拟主机空间、优惠服务器、阿里云免费虚拟主机、网站空间免备案、国外虚拟主机美国主机、香港空间哪个好、海外主机、美国虚拟主机购买、