更换域名在建站初期是经常发生的事情,无非就是DNS修改下解析,替换下内部代码,但对于运营过一段时间的、搜索引擎收录良好的“成熟”站点来说,修改域名,对网站流量和引擎收录简直就是灭顶之灾。正值最近本站刚更换了域名,就此来记录下作为一个网站,更换域名所需要考虑和修改的内容。
这一步不再赘述,无非就是解绑旧域名,换绑新域名。
此步骤是重中之重!对搜索引擎来说,有专门的网站改版提交入口,目的是主动通知搜索引擎你的原站链接变更,从而加快新域名链接的收录,但完成网站改版的验证,(百度,谷歌)都需要你将旧域名的链接通过301重定向来跳转到新链接。需要注意的是:
物理机/docker服务。这是最正统的实现方法,比如使用物理主机,通过Nginx配置即可完成重定向工作。但我没有云服务器我就没机会了吗?非也!HeroKu在等你!HeroKu也是一个站点托管平台,但突出点在于托管的实体对象,是docker对象,也就是说,理论上Heroku的托管应用就可以实现301重定向,确实,他们可以!
① 在Ubuntu上使用,只需要先安装heroku,再将重定向项目克隆并上传到你的heroku应用中,最后配置所谓的“重定向路径”。具体步骤如下:
(其他平台安装参见:https://devcenter.heroku.com/articles/heroku-cli)
$ 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
。
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 >>
汇总一下,主要有:
我在以下平台重新提交了XML文件,
最后的步骤:去百度站长反映你要换域名了;去 Google Console 来提交网站改版。
下图显示谷歌的配置正确之后的结果。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。