GitHub Pages 多个项目如何通过Cloudflare 绑定自定义域名?
📘 GitHub Pages 多项目绑定自定义域名 + Cloudflare 配置指南(新版控制面板)
🧱 场景描述
你有多个 GitHub 仓库(项目),希望分别绑定不同的自定义域名或子域名,如:
-
project-a
→a.example.com
-
project-b
→b.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 栏填写域名,如:
-
提交后,GitHub 会自动生成或更新仓库根目录的
CNAME
文件,内容如下:
🌐 二、Cloudflare DNS 设置(为每个子域解析)
登录 Cloudflare → 选择你的域名(example.com) → 进入 DNS 页面,添加记录:
示例记录(针对 a.example.com
):
类型 | 名称 | 内容(值) | 代理状态(小云朵) |
---|---|---|---|
CNAME | a |
yourusername.github.io |
✅ 开启(橙色) |
-
如果你绑定根域名(如
example.com
而非子域),请使用 A 记录指向 GitHub Pages 的 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 访问了 |
共有 0 条评论