启用部署SSL,强制所有内容页面301重定向到https的方法

网站安装SSL证书,启用https访问,需要对网站的http链接设置301永久重定向到https。

301重定向有很多方法,比如:

通过cPanel管理面板的“重定向”功能进行设置,或者在.htaccess文件中添加代码:

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_USER_AGENT} !MSIE/[1-8]\. [NC]
RewriteCond %{HTTP_HOST} dayapai.com
RewriteRule ^.*$ https://dayapai.com%{REQUEST_URI} [L,R=301]

通过实践以上两个301重定向的方法,发现可以实现首页的的重定向,即打开http://dayapai.com,会自动跳转到https://dayapai.com。

但是,文章内容页却无法自动跳转,比如http://dayapai.com/79,打开后就无法跳转到https://链接。

这个问题导致ssl证书在内容页的访问中无效,一直没时间彻底解决。

今天又测试了一段代码,终于解决了这个问题,实现了包括文章内容页在内的所有网页链接,自动跳转到https链接。

下载网站根目录下的.htaccess文件,在开头复制进以下代码:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*) https://%{HTTP_HOST}/$1 [R=301,L]

如果同时需要将带www的二级域名跳转到不带www的顶级域名,使用以下代码(本网站目前正在使用,可以打开不同网址测试查看):

#强制HTTPS方式访问,并自动将WWW跳转到顶级域名,放在最前面
RewriteEngine On
RewriteCond %{HTTP_HOST} !^dayapai.com$ [NC]
RewriteRule ^(.*)$ https://dayapai.com/$1 [L,R=301]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://dayapai.com/$1 [L,R=301]

上面代码第二组301中的80,是指访问端口为80。80端口是http默认的连接方式,包括带www和不带www的域名。另外https链接默认的端口是443。

最后,将修改完毕的.htaccess文件上传覆盖原来的文件即可。

©转载请注明出处及链接:大雅派 » 启用部署SSL,强制所有内容页面301重定向到https的方法

赞 (0)