GitHub Pages 多个项目如何通过Cloudflare 绑定自定义域名?

📘 GitHub Pages 多项目绑定自定义域名 + Cloudflare 配置指南(新版控制面板)

🧱 场景描述

你有多个 GitHub 仓库(项目),希望分别绑定不同的自定义域名或子域名,如:

  • project-aa.example.com

  • project-bb.example.com

目标是:让用户访问 https://a.example.com 时,打开 GitHub Pages 上部署的 project-a 项目。


✅ 一、GitHub 仓库 Pages 设置(每个仓库)

对每个仓库(如 project-a)依次操作:

1. 开启 GitHub Pages

进入仓库 → Settings → 左侧 Pages

  • Source: 选择 main 分支(或 gh-pages),目录为 //docs

  • 保存后,会生成默认地址:https://yourusername.github.io/project-a

2. 添加自定义域名

  • 在 Pages 页面下方的 Custom domain 栏填写域名,如:

    a.example.com
  • 提交后,GitHub 会自动生成或更新仓库根目录的 CNAME 文件,内容如下:

    a.example.com

🌐 二、Cloudflare DNS 设置(为每个子域解析)

登录 Cloudflare → 选择你的域名(example.com) → 进入 DNS 页面,添加记录:

示例记录(针对 a.example.com):

类型 名称 内容(值) 代理状态(小云朵)
CNAME a yourusername.github.io ✅ 开启(橙色)
  • 如果你绑定根域名(如 example.com 而非子域),请使用 A 记录指向 GitHub Pages 的 IP:

    A @ 185.199.108.153(+ 4 个 GitHub IP 可轮询)

🔐 三、Cloudflare SSL / HTTPS 设置(新版控制面板)

Cloudflare 新面板将 SSL 简化为以下两种选项:

1. 保持默认设置

SSL/TLS > Overview 页面,保持:

  • Automatic SSL/TLS (default)
    → 相当于以前的 “Full” 模式,兼容 GitHub Pages

无需切换到 Custom SSL/TLS,除非你要上传自己的证书。

2. 启用 HTTPS 强制和重写

进入 SSL/TLS > Edge Certificates 页面:

  • ✅ 开启 Always Use HTTPS

  • ✅ 开启 Automatic HTTPS Rewrites

确保用户自动从 http:// 跳转到 https://,并避免 GitHub Pages 的重定向问题。


✅ 四、最终效果验证

访问你的自定义域名(如 https://a.example.com)时,验证以下几点:

  • 页面成功加载,显示你仓库的 GitHub Pages 内容

  • 地址栏显示 https,SSL 证书由 Cloudflare 签发

  • 没有出现无限重定向、404、或者 ERR_SSL_PROTOCOL_ERROR


📌 总结表

步骤 操作说明
1️⃣ 为每个仓库启用 GitHub Pages
2️⃣ 设置仓库的 Custom Domain(自动生成 CNAME 文件)
3️⃣ 在 Cloudflare 添加 CNAME 记录,开启代理
4️⃣ 保持 Cloudflare 默认 SSL 设置(Automatic)
5️⃣ 启用 HTTPS 强制跳转选项
完成!你的项目现在通过自定义域名和 HTTPS 访问了
THE END
分享
二维码
< <上一篇
下一篇>>