apache从http跳转到https

之前是用的从腾讯云申请的TrustAsia颁发的证书,然后最近发现好多手机浏览器都不认这个,于是换成了Symantec颁发的。然后打开网站的时候,我需要从http跳转到https,同时不带www的https也要跳转到带www的https。

2017/11/13更新一下,增加一行判断,解决绑定子域名到子文件夹时,访问子域名跳转到主域名的问题。

也就是要三个301跳转。
http://www.icycat.com -> https://www.icycat.com
http://icycat.com -> https://www.icycat.com
https://icycat.com -> https://www.icycat.com

那么在apache下修改.htaccess文件,添加

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteCond %{HTTP_HOST} ^www.icycat.com$ [NC]
RewriteRule ^(.*)$ https://www.icycat.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^icycat.com$ [NC]
RewriteRule ^(.*)$ https://www.icycat.com/$1 [L,R=301]
</IfModule>

其实规则很简单,80端口并且是www的就跳转到https,没有www的https就跳转到有www的https。
但是在网上搜索到的结果一般都只有http跳转到https,少了第三种跳转,可能被大家忽略了吧。

最近apache用得很少,喜欢上了nginx。之后再发一下linux + nginx的一些常用配置,会比apache的多很多。

讲道理