现在很多的网站都在使用https,但是不少的用户在进行更改的时候都会出现各种问题,还有的就是自己操作不当造成更改不成功。因此就让小编给大家讲讲怎么正确的更改,一起来看看吧。
网站从http转换成https方法介绍
购买SSL证书
这个是必须的,现在价格并不贵。到David Yin帖子看一下,便宜的3年只是几十块钱。安装SSL证书的技术问题,无法在这讨论了,不明白的问技术人员吧。
备份、备份
这个也是必须的。对SSL安装、服务器配置不熟悉的站长来说,转换过程不一定是那么顺利的。
新版本代码改动
SSL证书安装后,https版本就可以访问了。原来网站上的所有URL都需要改到https版本,包括链接、图片、JS等,所以可能需要修改文章数据库、模板、插件等。
本博客使用WordPress,要在后台把博客地址改为https版本:
这样,绝大部分导航中的链接就由WP系统自动改为https版本了。但很可能还有一些导航性质的链接是硬编码在模板中的,比如这个博客帖子下面的版权声明,那是人工写在模板里的,别忘了改。
帖子正文中人工加的内部链接也需要自己改。如果使用了phpMyadmin,用下面指令跑一下数据库就行了:
update wp_posts set post_content = replace(
post_content, ‘http://www.seozac.com/’,
‘https://www.seozac.com/’);
帖子里的图片路径也就同时改了。
如果没有使用数据库管理工具,写个简单php程序运行一下也可以。
因为只是用指令在数据库执行了一下,没有,也没办法人工检查所有页面,可能有漏掉的链接、图片之类的,读者要是发现了,麻烦告诉我一下。
这里我还遇到了些没解决的问题。新浪微博组件和百度分享按钮组件貌似都不支持https,原理上应该可以把JS下载下来放到自己服务器上,但暂时没时间弄这个,先拿掉了。
检查新版本页面源代码
访问一下https版本页面,包括首页、栏目页、内页、sitemap,查一下源代码,看看还有没有http地址的存在,不仅页面可见部分,还得看看head部分,JS等,比如head里的canonical标签是否改到https版本了?程序生成的sitemap里的URL是否改为https版本了?
全站301转向
全站做http到https的301转向。LAMP服务器为例,在.htaccess文件中加:
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.seozac.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^seozac.com [NC]
RewriteRule ^(.*)$ https://www.seozac.com/$1 [L,R=301]
这个代码只是举例,也是我的博客用的实际代码,还有其他写法也可以,只要实现了301就行。
访问原http版本页面,检查301是否生效。
百度站长平台和Google Search Console
搜索引擎抓取301转向后,应该可以自行判断网站已经从http转到https了。另一个通知搜索引擎的方法是通过站长平台。
在Google Search Console中,把https网站加入并验证,不需要使用Change of Address功能。可以在http及https版本的账号下,用Fetch as Googlebot功能看看两种版本的URL是否返回正确头信息和页面源代码。
百度站长平台好像不支持两个版本都加入站长平台。不过在原来http账号下,管理站点属性部分有这样一个选项:
点这句话右面的设置按钮,出来一个对话框,问是否确认支持https协议,点“是”后变成这样:
希望这样百度就知道应该把http和https两个版本动作一个网站处理。
持续观察抓取、收录、排名、流量
这是接下来两三个月要做的事了,以后有进展再来报告。
目前可以报告的是,原始日志显示,百度及Google蜘蛛都抓取正常,已经抓取了301及转向后的页面。我是26号凌晨4-6点安装SSL证书、加301转向的,26号中午Google已经索引了几十个https页面(然而,没有首页,可能对待首页比较谨慎):
并且一些https页面(并不是所有已经索引了的https页面)已经进入排名,和原来的http版本位置基本是一样的。
百度到目前为止,还没有索引https页面。
尽量改正外部链接
可能的话,把外部链接改到新的https地址。