背景:
由于github禁止百度爬虫访问,造成托管在github Pages上的博客无法被百度收录。相关问题可以通过百度站长平台的抓取诊断再现,每次都是403 Forbidden的错误…
解决方案:
将hexo同时同步到github和coding.net
(1)在github使用hexo可以参见相关文章:
http://blog.jarjar.cn/write-blog-with-github/
(2)在coding.net开启pages功能
在coding.net上注册后,创建一个与用户名相同的项目,如用户名是cloudroc,则项目名称也是cloudroc。创建项目后,在项目的Pages页面里,修改Pages服务的关联分支为master,然后开启Pages服务。再填入你要绑定的域名。注意项目类型我这里设置的是共有。
(3)在本机建立coding.net的ssh key
首先本地需要安装git客户端,在任意路径右键->git bash here
输入:1
ssh-keygen -t rsa -C "yourmail@domain.com"
可以一路按enter键,然后可在C:\Users\主机名.ssh下找到,文件名:id_rsa(私钥),id_rsa.pub(公钥)
最后在coding.net,刚建立的pages项目中维护这个公钥,如下图:
(4)修改hexo目录的_config.yml,设置多个仓库同步
示例:1
2
3
4
5
6
7deploy:
type: git
repo:
github: https://github.com/cloudroc/cloudroc.github.io.git
coding: git@git.coding.net:cloudroc/cloudroc.git
branch: master
message: a little wroks
这里github好像只能是https,ssh是不行的,但是coding.net的ssh没有问题
在DNSPOD设置CNAME
首先要在coding里你的pages项目绑定一个域名,然后会提示你需要将你的域名cname到pages.coding.me,照着做就好。
我使用的dnspod,设置完之后讲这个cname的线路类型选择为百度,这样百度爬虫就会去找你在coding上面的镜像了。这个过程可能很慢,百度嘛,呵呵