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

发布于 2025-05-24 8 次阅读


# 📘 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** 栏填写域名,如:

`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 访问了

此作者没有提供个人介绍。
最后更新于 2025-05-24