GitHub Pages + EdgeOne CDN 多域名301跳转配置备忘
用途:主站
test.top正常展示博客,blog.test.top、www.test.top全站301跳转至主站,解决GitHub Pages 404/423报错,统一域名权重
一、GitHub 仓库固定配置(一次配置永久生效)
- 仓库根目录新建
CNAME文件,内容仅一行,无多余空格换行。内容为:test.top - 仓库
Settings-Pages设置- Custom domain:填写
test.top - 勾选
Enforce HTTPS强制HTTPS
- Custom domain:填写
- 等待页面自动部署完成
二、EdgeOne CDN 加速域名基础配置
1. 接入域名清单
需在EdgeOne后台添加3个加速域名:
test.top(主站,正常展示页面)blog.test.top(跳转域名)www.test.top(跳转域名)
2. 所有域名统一源站参数(关键,防止404/423)
- 源站类型:域名源站
- 源站地址:
test.github.io - 回源HOST:自定义填写
test.top - 回源协议:HTTPS:443
- SSL加密模式:Full
3. 域名DNS解析配置(域名服务商后台)
| 主机记录 | 记录类型 | 记录值 | TTL |
|---|---|---|---|
| @ | CNAME | EdgeOne分配的CDN专属CNAME | 600 |
| blog | CNAME | EdgeOne分配的CDN专属CNAME | 600 |
| www | CNAME | EdgeOne分配的CDN专属CNAME | 600 |
说明:所有域名流量全部接入EdgeOne节点,才能使用CDN规则实现HTTPS跳转。
三、EdgeOne 规则引擎 301跳转核心配置
- 进入站点 → 站点加速 → 规则引擎 → 创建规则
- 匹配条件:HOST 属于任意,填入
blog.test.top、www.test.top - 添加执行动作:访问URL重定向
- 状态码:301 永久重定向
- 目标协议:HTTPS
- 目标主机名:
test.top - 路径匹配正则:
(.*),替换内容:$1 - 勾选:携带URL查询参数
- 保存规则,发布生效
配置逻辑释义
用户访问 blog / www 域名时,CDN节点直接返回跳转响应,不会回源GitHub,不消耗回源流量;仅 test.top 无匹配规则,正常请求 GitHub 页面。
四、两种跳转方案对比(备忘区分)
-
EdgeOne CDN跳转(当前使用方案) 优点:支持HTTPS无安全警告、完整保留文章子路径、访问速度快、自带防护、二级域名无需单独备案
-
域名服务商DNS显性转发(不推荐切换) 缺点:HTTPS访问证书报错、丢失子页面路径、稳定性差、二级域名需备案
五、常见故障排查备忘
-
访问 blog.test.top 出现404页面不存在
原因:CDN回源HOST未填写test.top,GitHub无法识别HOST头
修复:3个加速域名统一检查回源HOST配置 -
ERR_CONNECTION_CLOSED / 连接被关闭
原因:回源协议设为HTTP、SSL模式非Full、双层嵌套回源
修复:回源强制HTTPS,所有域名直接源站指向github.io,不二次回源主域名 -
跳转失效,直接打开blog页面
原因:规则未发布、匹配HOST填写错误、DNS未生效
修复:重新发布规则,清空浏览器缓存,等待10分钟DNS同步 -
访问报423 Locked
原因:裸域名直连GitHub,未走CDN代理
修复:DNS必须CNAME指向EdgeOne,不能直接解析github.io
六、长期维护注意事项
- 不要删除 EdgeOne 内 blog、www 两个加速域名,不要删除对应DNS解析记录,否则跳转直接失效
- 仅当CDN免费域名额度不足时,再考虑切换为DNS显性转发(牺牲路径与HTTPS体验)
- 后续新增二级域名统一在此规则内添加HOST匹配项即可,无需新增多条独立规则