昨天终于部署好了SSL,点亮了小绿锁,看着可比以前那个红叉叉顺眼多了。还没有把自己网址HTTP升级为HTTPS的站长们赶快动手吧。
今天我在调试网站的时候发现输入原来的网址还是有不带http的页面,很显然,这需要做一个自动跳转。
下面是一篇通过.htaccess使http自动301跳转到https的方法的教程,这里采纳了好酷资源网的一些内容。
一、为什么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文件,301重定向代码如下:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:From-Https} !^on$ [NC] RewriteRule ^(.*)$ https://www.guminfeng.cn/$1 [R=301,L] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.guminfeng.cn$1 [R=301,L] </IfModule>
注意:.htaccess是Apache服务器下的配置文件,如果你的服务器或者虚拟主机不是Apache环境则不适用此方法
上面的代码有个缺陷,内页的不能自动跳转,只是针对了首页,下面的代码可以实现全站跳转,但是在测试中总会发生页面打开错误,所以这里顾敏锋博客没有采用。
RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301]
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>
噢!评论已关闭。