用途:主站test.top正常展示博客,blog.test.topwww.test.top全站301跳转至主站,解决GitHub Pages 404/423报错,统一域名权重

一、GitHub 仓库固定配置(一次配置永久生效)

  1. 仓库根目录新建 CNAME 文件,内容仅一行,无多余空格换行。内容为:test.top
  2. 仓库 Settings - Pages 设置
    • Custom domain:填写 test.top
    • 勾选 Enforce HTTPS 强制HTTPS
  3. 等待页面自动部署完成

二、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跳转核心配置

  1. 进入站点 → 站点加速 → 规则引擎 → 创建规则
  2. 匹配条件:HOST 属于任意,填入 blog.test.topwww.test.top
  3. 添加执行动作:访问URL重定向
    • 状态码:301 永久重定向
    • 目标协议:HTTPS
    • 目标主机名:test.top
    • 路径匹配正则:(.*),替换内容:$1
    • 勾选:携带URL查询参数
  4. 保存规则,发布生效

配置逻辑释义

用户访问 blog / www 域名时,CDN节点直接返回跳转响应,不会回源GitHub,不消耗回源流量;仅 test.top 无匹配规则,正常请求 GitHub 页面。

四、两种跳转方案对比(备忘区分)

  1. EdgeOne CDN跳转(当前使用方案) 优点:支持HTTPS无安全警告、完整保留文章子路径、访问速度快、自带防护、二级域名无需单独备案

  2. 域名服务商DNS显性转发(不推荐切换) 缺点:HTTPS访问证书报错、丢失子页面路径、稳定性差、二级域名需备案

五、常见故障排查备忘

  1. 访问 blog.test.top 出现404页面不存在
    原因:CDN回源HOST未填写 test.top,GitHub无法识别HOST头
    修复:3个加速域名统一检查回源HOST配置

  2. ERR_CONNECTION_CLOSED / 连接被关闭
    原因:回源协议设为HTTP、SSL模式非Full、双层嵌套回源
    修复:回源强制HTTPS,所有域名直接源站指向github.io,不二次回源主域名

  3. 跳转失效,直接打开blog页面
    原因:规则未发布、匹配HOST填写错误、DNS未生效
    修复:重新发布规则,清空浏览器缓存,等待10分钟DNS同步

  4. 访问报423 Locked
    原因:裸域名直连GitHub,未走CDN代理
    修复:DNS必须CNAME指向EdgeOne,不能直接解析github.io

六、长期维护注意事项

  1. 不要删除 EdgeOne 内 blog、www 两个加速域名,不要删除对应DNS解析记录,否则跳转直接失效
  2. 仅当CDN免费域名额度不足时,再考虑切换为DNS显性转发(牺牲路径与HTTPS体验)
  3. 后续新增二级域名统一在此规则内添加HOST匹配项即可,无需新增多条独立规则