注:目前 coding.net 免费帐号的自定义域名页面会有重定向,已无法被百度正常收录了。
由于Github禁止百度爬虫访问,托管在Github Pages上的博客无法被百度收录。
查看知乎上的讨论:如何解决百度爬虫无法爬取搭建在Github上的个人博客的问题?。
CDN的方法不太可靠,而建立镜像,让百度爬虫直接抓取镜像网站上的内容,是较可行的。
国内Coding.net网站提供的Pages服务,和Github Pages基本一致,能自定义域名,基于git和Jekyll。因此,可以选择在Coding.net上建立Github Pages镜像。
基本思路:
- 建立github page,通过DNSPod将默认线路的域名CNAME指向Github Pages地址。
- 在Coding.net上建立镜像,通过DNSPod将百度线路的域名CNAME指向Coding.net Pages地址。
- 将Github Pages代码库中的更新和coding.net同步
一、在Coding.net上创建Pages
在Coding.net上注册后,创建一个与用户名相同的项目,如用户名是haiiiiiyun,则项目名称也是haiiiiiyun。
创建项目后,在项目的Pages页面里,修改Pages服务的关联分支为master,然后开启Pages服务。再填入你要绑定的域名。
现在,你在Coding.net 上的Page地址就是haiiiiiyun.coding.me了。
二、同步代码
- 将Github Pages项目代码库clone到本地,比如我的Github Pages项目名称为haiiiiiyun.github.io
- 将本地github项目与coding.net关联,即添加一个git remote
haiiiiiyun.github.io$ git remote add mirror git@git.coding.net:haiiiiiyun/haiiiiiyun.git
- 每次github项目库更新提交后,再一并同步到coding.net上的镜像库。
haiiiiiyun.github.io$ git add --all
haiiiiiyun.github.io$ git commit 'comment'
haiiiiiyun.github.io$ git push # 提交到github
haiiiiiyun.github.io$ git push mirror master # 提交到coding.net
操作后,github和coding.net上的项目代码就同步了。
三、DNSPod上设置CNAME
将默认线路的CNAME记录值指向Github Pages。再将百度线路的CNAME记录值指向Coding.net Pages。
设置完后,百度爬虫就能从镜像网站上抓取网页内容了。