用平台提供的二级域名(比如 username.github.io)写博客固然省事,但总有一种「借住在别人家客厅」的漂泊感:所有的外链引用、SEO 权重和读者心智都留在了平台的子域名上。万一哪天平台规则变动或者想搬家迁移,积累多年的数字资产很难打包带走。
一个属于自己的顶级独立域名(如 yishulun.com),是个人用独立博客建立品牌辨识度与沉淀长期搜索引擎权威度(Domain Authority)的基石。
本篇详解从 source/CNAME 文件管理、DNS 解析配置,到 GitHub Pages 证书绑定与强制 HTTPS 跳转的完整操作。
一、创建 source/CNAME 文件
GitHub Pages 与大多数静态托管服务靠根目录下的 CNAME 文件来识别自定义域名。
1. 写入域名内容
在博客的 source/ 根目录下新建 CNAME 文件(注意:没有任何 .txt 后缀),内容仅写入你的正式域名:
yishulun.com
2. 确保 CI/CD 自动同步
在 .github/workflows/deploy.yml 构建流水线中,确保包含拷贝命令:
cp source/CNAME public/CNAME
避坑提醒:一定要把
CNAME保存在source/源码库中并由脚本自动复制。如果只是在 GitHub 网页后台点绑定,每次 Actions 自动化构建全量覆盖public/时,就会把网页后台的设置冲掉,导致域名偶尔莫名其妙「掉线」。
二、DNS 解析记录设置
登录你的 DNS 控制台(Cloudflare、腾讯云 DNSPod、阿里云云解析或 Namecheap 等),添加解析记录:
推荐方案:CNAME 别名解析(配合 Cloudflare 或支持 CNAME 扁平化的 DNS)
- 根域名解析 (
@):- 主机记录 (Host):
@ - 记录类型 (Type):
CNAME - 记录值 (Target):
rixingyike.github.io(替换为你自己的 GitHub Pages 地址) - TTL:自动 / 600 秒
- 主机记录 (Host):
- 二级域名解析 (
www):- 主机记录 (Host):
www - 记录类型 (Type):
CNAME - 记录值 (Target):
yishulun.com(替换为你自己的主域名) - TTL:自动 / 600 秒
- 主机记录 (Host):
备用方案:A 记录直接指向 GitHub 官方 Anycast 节点 IP
如果你的 DNS 服务商不支持根域名 @ 配 CNAME,还可以添加以下 4 条 A 记录:
185.199.108.153185.199.109.153185.199.110.153185.199.111.153
这 4 个 IP 属于 Github 服务器,负责 Github Pages 在线服务。
三、在 GitHub Pages 中绑定与开启 HTTPS
- 进入存放静态文件的 GitHub 仓库(例如
rixingyike.github.io); - 点击 Settings -> Pages;
- 在 Custom domain 输入框中填入你的独立域名(如
yishulun.com),点击 Save; - GitHub 会自动发起 DNS 校验并申请免费的 SSL 证书(一般需等待 2~10 分钟);
- 证书颁发成功后,勾选 Enforce HTTPS(强制 HTTPS)。
四、同步更新 RustPress 的 config.toml
域名绑定好之后,记得把 config.toml 中的 domain 与 base_url 改为生产正式域名:
[site]
name = "艺述论"
# 生产环境绝对域名(必须为 https:// 开头且末尾不带斜杠)
domain = "https://yishulun.com"
base_url = "https://yishulun.com"
这样生成的 rss.xml、sitemap.xml 以及文章内链就会自动带上你的专属域名。
五、验证 DNS 解析与连通性
在本地终端敲两行命令验证:
# 查询 CNAME 指向
dig yishulun.com CNAME +short
# 测试 HTTP 状态码与 HTTPS 连通
curl -I https://yishulun.com
终端返回 HTTP/2 200 或 HTTP/1.1 200 OK,说明独立域名已在全球范围顺利生效。
到这里,第二部分「核心配置」就全部讲完了。第三部分,我们将进入日常内容创作的实操阶段,看看怎么用好 RustPress 的博文、专栏、闲言、著作与项目等功能。