本文已很久没有更新,内容可能已过时。 谷歌宣布,在2018年7月的最后期限之前,Chrome将会在网站不安全的情况下明确警告用户。谷歌浏览器目前市场占有率超过60%。这意味着网站的不安全警告有一半的可能性会让你潜在客户产生不信任感。BlueHost采用LAMP(Linux+Apache+MySql*+PHP)的web环境,理论上讲支持所有Apache特性。本文将介绍如何在Bluehost中启用SSL并通过修改htaccess实现带www和不带www的网站正向、反向强制跳转访问、HTTP请求强制重定向到HTTPS。
介绍
这篇文章展示如何开启Bluehost的SSL免费证书,并通过配置Bluehost的Apache的.htaccess
配置文件实现将站点从www
重定向到非www
(301永久重定向)以及HTTP重定向到HTTPS。
www跳转到非www(non-www)并实现强制https:
从
http://example.com
http://www.example.com
https://www.example.com
https://example.com
跳转到
https://example.com
Bluehost启用免费SSL
Bluehost官网:<www.bluehost.com>
此处假设你已经购买bluehost套餐。
登陆Bluehost官网,点击左侧My Sites,鼠标移动到网站标签,选择Manage Site。
点开标签Security->Security Certificate->Free SSL Certificate,设置为ON即可。
选择Settings标签,将Site URL设置成想要的格式,带www或不带www,点击Save Update按钮,此处我设置为不带www并做HTTPS强制跳转(如图所示)。
配置.htaccess
文件
配置.htaccess
以达到https强制跳转目的。
Bluehost默认不显示隐藏文件,如何设置Bluehost显示隐藏文件?
打开Bluehost File Manager,单击页面右上角的设置(我用中文界面),在偏好页面选中显示隐藏文件,点击保存即可在网站根目录下看到.htaccess文件。
先备份.htaccess
文件,防止出错后无法恢复。
右键单击.htaccess
文件,选择Edit,在编辑框内选择文件字符编码,默认utf-8
,如果你的网站不是utf-8
编码,选择对应的字符编码,点击Edit按钮进入编辑模式。
将下面的配置信息添加到.htaccess
文件内原有内容下方,保存更改。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,NE,R=301]
</IfModule>
如果想统一使用带www的域名显示方式只需修改第四、第六行即可。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
</IfModule>
修改.htaccess
文件后无需重启Apache,更改即时生效,‘硬刷新’一下页面或者Ctrl+F5就能看到新的htaccess代码生效了,如果发生网站打不开,或者打开页面显示下载网页,将备份的.htaccess
文件恢复到网站根目录下覆盖修改后的文件,排查配置代码后重新尝试。
PS:Bluehost官方重写配置Mod_Rewrite。https://my.bluehost.com/hosting/help/94可作参考。
效果演示
F12打开浏览器开发者界面,输入自己操作的域名,此处实验时使用http://www.sufob.com,在network标签下可以看到Status Code
变为301 Moved Permanently
。重定向后的地址为https://sufob.com。
结论
利用以上配置可以将www和非https请求的重定向到统一的站点域名,实现权重统一,对于避免搜索引擎重复抓取非常有用。