这几天楚狂人根据自己的亲身经历一步步的从零开始把自己的博客网站改造成了HTTPS开头的安全网址。从如何申请免费SSL证书、如何对SSL证书进行配置、配置成功后又如何把网址前面的灰色小锁变成绿色小锁都一一写了教程,今天要完成最后一步,那就是进行301转向设置。
一、为什么HTTP到HTTPS改造之后需要进行301重定向设置?
1、传递权重,有利于SEO。
网站从http改到https后的一段时间,百度、谷歌、360这些搜索引擎需要重新抓取、判断、计算,收录,网站的排名和流量都会发生阶段性下降。所以我们要通过301转向把网站原来的权重传递给新的HTTPS网址。
2、百度站长平台认证。
把一个网站改造成https之后,我们可以去百度站长平台认证https,但是百度的https认证是严格遵守301重定向的,如果没有进行301设置,提交之后就会出现“请将您的http站点301重定向到https站点”。
二、怎么进行HTTP到HTTPS的301重定向设置?
经过一番搜索、学习、试验之后楚狂人发现,服务器环境不同,301跳转代码的设置也不同,所以大家在做301重定向之前要先弄清楚自己服务器的环境。
1、linux系统+Apache环境:
把下面的代码写入.htaccess文件。比如我的阿里云的云服务器ECS用的事linux系统apache环境,那么我使用的301重定向代码如下:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:From-Https} !^on$ [NC] RewriteRule ^(.*)$ https://www.abc.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.abc.com$1 [R=301,L] </IfModule>
2、linux系统+Nginx环境:
编辑nginx站点配置文件(登录wdcp管理面板中:站点列表-文管-虚拟主机站点文件nginx-对应站点配置文件),添加以下301重定向规则:
server { listen 80; server_name abc.com; rewrite ^(.*) https://www.abc.com$1 permanent; }
3、Windows系统+II7环境:
云服务器的设置代码:在对应站点根目录下新建(通过ftp或登录后直接进入到D:\wwwroot\站点ftp命名目录\wwwroot创建)一个文件命名为web.config并编辑添加以下301重定向规则:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="301" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTPS}" pattern="^on$" negate="true" /> </conditions> <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> # www.abc.com对应修改为您自已的域名 </rule> </rules> </rewrite> </system.webServer> </configuration>
虚拟主机的设置代码:可以通过ftp或登录后进入到主机管理面板-文件管理,进入wwwroot,新建一个文件命名为web.config并编辑添加以下301重定向规则:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="301" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{HTTP_FROM_HTTPS}" pattern="^on$" negate="true" /> </conditions> <action type="Redirect" url="https://www.abc.com/{R:1}" redirectType="Permanent" /> # www.abc.com对应修改为您自已的域名 </rule> </rules> </rewrite> </system.webServer> </configuration>
以上这些代码,要根据自己的服务器或者虚拟主机选择,如果选择错误,那么不但301重定向无法生效,还可能造成网站无法打开哦。至此,楚狂人博客整个网站的HTTPS改造全部完成了。