在使用 GitHub Pages 搭建个人站点、项目文档时,很多人会逐个仓库单独配置域名,操作重复且管理混乱。其实利用 用户专属根站点仓库 的特性,只需一次配置自定义域名,就能让账号下所有项目仓库的 Pages 站点自动复用该域名,大幅简化维护成本。

一、先搞懂 GitHub Pages 站点分类

GitHub Pages 分为两类,二者域名继承规则完全不同:

  1. 用户/组织主站点
    仓库名格式固定为:用户名/用户名.github.io,每个账号仅能创建一个。它是整个账号 Pages 服务的入口,默认访问地址为 用户名.github.io
  2. 普通项目站点
    账号下其余所有仓库都属于项目站点,在未单独配置域名时,默认访问路径为 用户名.github.io/仓库名

核心特性:只要给主站点仓库绑定自定义域名,账号内所有项目站点会自动拼接路径访问,无需逐个配置

二、整体配置思路

整体流程分为三大环节:域名所有权验证、DNS 解析配置、主仓库域名绑定。全程仅需操作主站点仓库,其余项目仓库无需任何改动。

重要提醒:禁止使用 *.域名 通配符 DNS 记录,会存在子域名被恶意接管的安全风险,官方也明确不推荐。

1. 前置准备

  1. 拥有一个已完成备案的自有域名;
  2. 确认账号下存在主站点仓库 用户名.github.io,若不存在则新建一个公开仓库,仓库名严格遵循格式;
  3. 进入域名服务商后台(阿里云、腾讯云、Cloudflare 等均可),准备编辑 DNS 解析记录。

2. 域名所有权验证(安全必做)

这是 GitHub 新增的安全校验,用于证明域名归属权,防止他人盗用你的域名绑定站点。

  1. 进入 GitHub 账号全局设置,找到域名添加入口,输入你要使用的自定义子域名/根域名;
  2. GitHub 会生成一条专属 TXT 解析记录,包含主机记录和验证字符串;
  3. 前往域名 DNS 管理面板,新增一条记录:
    • 记录类型:TXT
    • 主机记录:填写 GitHub 提供的前缀(例:_github-pages-challenge-xxx
    • 记录值:复制 GitHub 给出的随机验证串
    • TTL:设置为 5 分钟,加快生效速度
  4. 等待 DNS 解析生效(一般 15~30 分钟),返回 GitHub 页面点击「验证」,完成域名确权。

3. 配置 DNS 解析(核心步骤)

根据你选择的域名类型,选择对应解析方案,二选一即可

方案 A:使用子域名(推荐,稳定性最高)

适合 xxx.你的域名.com/de 这类格式,也是 GitHub 官方首选方案,不受 GitHub 服务器 IP 变动影响。
新增一条 CNAME 记录:

  • 记录类型:CNAME
  • 主机记录:填写子域名前缀(例如 mygithub
  • 记录值:用户名.github.io
  • TTL:5 分钟
方案 B:使用根域名(裸域名)

直接使用 你的域名.com/de 访问,不推荐新手使用,需配置多条 A 记录:
新增 4 条 A 记录,主机记录统一填写 @,记录值依次填入 GitHub Pages 官方 IP:

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153

配置完成后,等待 DNS 全网生效,可使用在线 DNS 检测工具校验解析结果是否正常。

4. 主仓库绑定自定义域名

  1. 打开 用户名.github.io 仓库,进入 SettingsPages
  2. Custom domain 输入框中,填写你配置好的完整自定义域名(和 DNS 解析保持一致),点击保存;
  3. 保存后仓库根目录会自动生成 CNAME 文件,文件内容即为你填写的域名,不要删除、不要修改
  4. 勾选 Enforce HTTPS 强制启用加密访问,GitHub 会自动申请 TLS 证书,证书签发耗时约 15 分钟~1 小时,耐心等待即可。

三、最终效果展示

完成以上配置后,全局域名规则自动生效:

  1. 主站点仓库:通过 自定义域名 直接访问;
  2. 账号下所有普通项目仓库:自动以 自定义域名/仓库名 的形式访问;

举个例子:

  • 主站访问:mygithub.xxx.de
  • 项目仓库 A 访问:mygithub.xxx.de/repo-a
  • 项目仓库 B 访问:mygithub.xxx.de/repo-b

所有项目共用一套域名体系,统一规范,后续新建仓库开启 Pages 服务时,无需再做任何域名配置,开箱即用。

四、常见问题与排错

  1. 提示 DNS 解析读取失败(InvalidDNSError)
    检查 DNS 记录类型、主机记录、目标地址是否填写错误;子域名务必使用 CNAME 记录,根域名使用 A 记录,不要混用。配置后等待解析生效,不要频繁重复保存。

  2. TLS 证书一直处于申请中
    证书签发最长耗时 1 小时,属于正常现象。若超过 2 小时仍未完成,可清空自定义域名并保存,重新输入域名触发新一轮申请。

  3. 部分项目仓库无法通过新域名访问
    确认项目仓库已正常开启 GitHub Pages 服务,分支、目录配置无误;全局域名仅对正常启用的 Pages 站点生效。

五、总结

利用 用户名.github.io 主仓库做全局域名绑定,是管理多项目 GitHub Pages 最高效的方式。一次配置,全账号复用,既规避了逐个配置域名的繁琐操作,也能统一站点对外访问入口。

操作核心记住两点:一是做好域名验证与合规 DNS 配置,拒绝通配符记录保障安全;二是所有域名操作仅针对主站点仓库,普通项目仓库无需改动。这套方案无论是搭建个人博客、技术文档站,还是项目演示页面,都非常实用。

Logo

免费领 100 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐