更换域名在建站初期是经常发生的事情,无非就是DNS修改下解析,替换下内部代码,但对于运营过一段时间的、搜索引擎收录良好的“成熟”站点来说,修改域名,对网站流量和引擎收录简直就是灭顶之灾。正值最近本站刚更换了域名,就此来记录下作为一个网站,更换域名所需要考虑和修改的内容。

更换DNS绑定域名

这一步不再赘述,无非就是解绑旧域名,换绑新域名。

301重定向(重要!)

此步骤是重中之重!对搜索引擎来说,有专门的网站改版提交入口,目的是主动通知搜索引擎你的原站链接变更,从而加快新域名链接的收录,但完成网站改版的验证,(百度,谷歌)都需要你将旧域名的链接通过301重定向来跳转到新链接。需要注意的是:

  • 强烈建议网站改版的链接按照规则来更新。最理想的规则是 a.com/1.html => b.com/1.html,即网站内容不变,仅仅是更换域名而已。
  • 百度站长平台支持你自定义链接替换规则。

如何完成301重定向?

  • html或js跳转[X]。对于绝大部分使用托管服务搭建站点的用户来说,通过一个单独的page进行跳转是最佳方案了。实现方法非常多,可以利用404.html页面,借助JavaScript进行自定义跳转,但是!!这样的跳转并不是带HTTP状态的301重定向。遗憾的是,对于Github和Coding,他们并不支持搜索引擎所需要的301重定向。

物理机/docker服务。这是最正统的实现方法,比如使用物理主机,通过Nginx配置即可完成重定向工作。但我没有云服务器我就没机会了吗?非也!HeroKu在等你!HeroKu也是一个站点托管平台,但突出点在于托管的实体对象,是docker对象,也就是说,理论上Heroku的托管应用就可以实现301重定向,确实,他们可以!

在Ubuntu上使用,只需要先安装heroku,再将重定向项目克隆并上传到你的heroku应用中,最后配置所谓的“重定向路径”。具体步骤如下:

(其他平台安装参见:https://devcenter.heroku.com/articles/heroku-cli)

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sudo snap install --classic heroku
$ heroku login
$ git clone https://github.com/joeyAghion/rerouter.git
$ cd rerouter
$ git init
$ heroku git:remote -a redirectold //heroku项目名称

$ git add . //克隆后要修改一处地方!!
$ git commit -am "make it better"
$ git push heroku master

$ heroku config:set REDIRECTS="{'www.cz5h.com'=>'www.cxmoe.com'}"
$ heroku domains:add cz5h.com

注意:克隆之后的源代码需要修改一下,把跳转链接改为 https

1
2
3
4
5
6
7
8
9
10
11
require 'rack/rewrite'
# Expects ENV['REDIRECTS'] to be a ruby hash of source hostnames to destination hostnames. E.g.:
# "{'old.domain.com' => 'new.domain.com'}"
REDIRECTS = eval(ENV['REDIRECTS'] || '') || {}
use Rack::Rewrite do
REDIRECTS.each do |from, to|
r301 %r{.*}, "https://#{to}$&", if: -> (env) { env['SERVER_NAME'] == from }
end
end
# Fall back to default app (empty).
run -> (env) { [200, {}, []] }

完成之后,即可在Heroku网站上看到修改的内容,尤其是Redirects配置。

之后,为了匹配缺省域名,我们需要两个域名绑定,分别是“a.com”和“www.a.com”。

除此之外,为了完全对应新站链接,此处的heroku所使用的协议,应该跟我的站点一致也是“https://”,为了开启https,万恶的Heroku需要你在网站绑定信用卡,之后才可以顺利开启https。

还有,我们的301重定向需要全天可用,但heroku仅对付费者提供此项服务,因此最后选择了最便宜的类型,无需维护301太长时间,一两个月足以。

一切就绪后,下面所示的SSL证书会自动添加。

大功告成之后,可以去站长工具查询Http状态,当返回状态码和HEAD信息正确时,那就是301重定向已经搞定。

<< 更多精彩尽在『程序萌部落』>>
<< https://www.cxmoe.com >>

网站统计代码重置

汇总一下,主要有:

  • 谷歌Analytics
  • 百度统计
  • 360站长
  • cnzz

网站地图重新提交

我在以下平台重新提交了XML文件,

  • baidu统计 (+robot.txt)
  • 360站长
  • 谷歌console

主动通知网站改版

最后的步骤:去百度站长反映你要换域名了;去 Google Console 来提交网站改版。

下图显示谷歌的配置正确之后的结果。

更换第三方依赖域名

  • webpushr //推送订阅弹窗
  • valine邮件模板 //邮件设定
  • 全局查找Hexo的theme主题文件夹,找到旧域名替换。

后记

  1. 百度的网站改版校验非常奇怪,谷歌测试无误后,在百度站长就是校验失败,已经致信客服寻求帮助。

  2. 不必在意改版后的收录情况,一两个星期看一次就够啦,毕竟是一个重新收录的过程!



😒 留下您对该文章的评价 😄



 评论




全站共计 311.1k 字,自豪地使用 Volantis 主题

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议