从 CSDN 博客迁移到个人 Hexo 站点的一点坑

前言

最近把 原来 CSDN 博客迁移到了个人博客。

原先 CSDN 博客:http://blog.csdn.net/never_cxb

独立个人博客:http://www.alijava.com/

配置信息

  • 由 Hexo 强力驱动
  • 主题 - NexT.Mist
  • 图片存储于七牛云
  • 服务器 nginx
  • 部署于阿里云
  • 已备案
  • 评论: 多说
  • 统计阅读次数:LeanCloud
  • 搜索引擎优化:百度站长

如果您还没有注册七牛,可以通过我的邀请链接注册 https://portal.qiniu.com/signup?code=3lpzf1unpyr0y,可以享受特有优惠以及免费空间。

nginx 常用命令

  • sudo service nginx restart 重启服务器nginx
1
2
3
sudo service nginx start
sudo service nginx stop
sudo service nginx restart

安装 next 官网教程配置腾讯404 页面,发现总是无法显示

后来发现是因为nginx的问题,需要配置 404路径,

设 404 为 hexopublic 目录 /usr/local/hexo/blog/public

加上 fastcgi_intercept_errors on,现在就可以正常访问了

http://www.alijava.com/404.html

1
2
3
4
5
6
7
error_page 404 /404.html;
location = /404.html {
root /usr/local/hexo/blog/public;
}
fastcgi_intercept_errors on;

Todo List

  • git 版本控制,备份
  • 推广,搜索引擎优化

Hexo 常用命令

  • hexo new "java-basics" 或者 hexo n "java-basics"

  • hexo generate 或者 hexo g 生成静态文件至public目录

  • hexo server 或者 hexo s 启动服务预览

  • hexo s -p 5000 将默认端口4000修改为5000

保持ssh连接不断线

1
ssh -o ServerAliveInterval=60 root@115.**.**.**

意思是每60秒发送一个信号重连

搜索引擎优化

主要是通过百度站长平台,希望能够提升博客在搜索引擎的收录数量及排序位置

主动推送(实时)

官方文档这么说:

将要提交的链接按照每行一条的格式写入一个文本文件中,命名此文件为urls.txt,
然后进入该文件所在目录,执行如下命令:

1
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=www.alijava.com&token=2FncXBwaZ5iVh5oT"

为了方便提交,写了一个脚本,方便 curl 提交链接。

(1)ls source/_posts | grep ".md$" ,输出source/_posts.md结尾的文件名
(2)笔者的文章 urlhttp://www.alijava.com/ + 文件名,利用 sed -e 's/\.md$//'去掉后缀 .md
(3)sed -e 's/^/http:\/\/www.alijava.com\//'加上网站前缀

1
2
ls source/_posts | grep ".md$" | sed -e 's/\.md$//' -e 's/^/http:\/\/www.alijava.com\//' > urls.txt
echo `curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=www.alijava.com&token=你的token"`

sitemap

注意在你的hexo 博客目录,执行下面命令

1
2
npm install hexo-generator-sitemap --save
npm install hexo-generator-baidu-sitemap --save

站点配置文件 增加

1
2
3
4
sitemap:
path: sitemap.xml
baidusitemap:
path: baidusitemap.xml

然后重新编译并部署

1
2
hexo clean
hexo g

站点地图就可以通过下面链接访问了

sitemap 的坑

把生成的sitemap提交百度站长之家后,发现状态为主域校验失败

原因是生成的 sitemap.xml 里面的是 http://yoursite.com/common-tools/,前缀不是网站真实网址

1
2
3
4
<url>
<loc>http://yoursite.com/common-tools/</loc>
<lastmod>2016-09-03T08:28:25.843Z</lastmod>
</url>

目前的方法是手动修改 sitemap.xmlbaidusitemap.xml,但是每次hexo g部署之后都需要修改,不知道有没有其他方法

可以利用 vim 修改文件

1
:%s/yoursite/www.alijava/g

yoursite.com替换为www.alijava.comg表示替换所有

参考文章