Blog-为博客绑定自定义二级域名

本文记录为博客绑定自定义二级域名过程以及踩到的坑。网上普遍找到的博客搭建教程以绑定顶级域名居多,个人感觉一个博客绑定一个顶级域名也太浪费了些,故寻找绑定二级域名的方法,并记录遇到的问题和解决方式。

需要了解域名的相关基础知识,可查看参考资料1。

添加 CNAME文件

方式一:通过仓库设定添加 CNAME 文件

  1. 打开博客所在仓库,选择 Setting

  2. 找到 GitHub Pages 设定条目,在 Custom domain 下输入你的二级域名,例如 blog.example.com,点击保存,该操作将发布源的根目录下创建一个 CNAME 文件;

方式二:手动添加 CNAME 文件

  1. 在仓库根目录下添加一个名为 CNAME 的文件,该文件名必须全部大写;

  2. 在该文件内写入你的二级域名,如 blog.example.com;

方式三:在本地手动添加 CNAME文件

  1. 在本地的博客目录.\source\ 路径下创建一个 CNAME 文件;

  2. 在该文件内写入你的二级域名,如 blog.example.com;

添加 DNS 记录

  1. 打开域名服务商后台 DNS 管理;

  2. 添加一条 CNAME 记录,主机名即刚刚设定的二级域名,比如上面的 blog.example.com 即为 blog ,地址填写原来的 github 博客地址。

故障处理

网上搜索到的零星教程配置完成了,但会发现在本地使用 hexo d -g 推送更新时产生错误,无法征程推送,在官方文档中找到了解决方案。

产生错误的原因在于本地构建博客推送的方式在静态博客渲染页面提交可能覆盖掉了 CNAME 文件。使用以下命令提交 CNAME 文件以免被覆盖:

1
2
git add CNAME
git commit -m "add CNAME file"

再次尝试,问题应该已经解决,同时在仓库的设置页应该会显示一个提示 ”Your site is published at http://blog.example.com " 。

设置页还提供了 HTTPS 选项,勾选该选项,可强制使用 HTTPS 协议访问,访问站点将变为 "https://blog.example.com " ,同时浏览器地址栏将不会提示该站点可能不安全。

至此,当访问 Github 提供的二级域名 user.github.io 时将切换为自定义域名访问。

参考资料