🚀 个人博客域名迁移实战手册(进阶版)

一、 源码层:GitHub 仓库与 Hexo 配置

在推送代码前,必须确保博客的身份信息已经更新。

1.1 CNAME 文件

检查 GitHub 仓库 public 文件夹(或 source 文件夹)下的 CNAME 文件,将其内容改为新域名:harrysong\online

1.2 Hexo 配置文件

修改根目录下的 _config.yml 中的 url 字段。该配置直接关系到生成的站点地图(Sitemap)和资源绝对路径。

1.3 清理与重构

执行以下命令,强制刷新静态资源,确保所有静态页面中嵌入的链接都已指向新域名:

hexo clean
hexo g

二、 图床层:npm 与自定义镜像域名

这是本次迁移方案中最核心的环节。若使用 static\harrysong\space 子域名作为 npm 图床加速镜像,需完成以下配置闭环:

2.1 子域名解析

在 Cloudflare 控制台中,为新域名添加 static(自定义)类型的 CNAME 解析记录。

2.2 全站内容替换

使用全局搜索替换工具,批量修改博客文章源码,将所有旧图床域名:static\harrysong\space 替换为新域名:static\harrysong\online

三、 安全与边缘计算层:Cloudflare Worker 调优

该环节是最容易出现图片加载异常(403/404)的关键位置,务必仔细核对。

3.1 Worker 逻辑更新(防盗链)

  • Referer 白名单:若 Worker 配置了 Referer 防盗链规则,必须将新域名harrysong\.online 加入白名单匹配规则。

  • 硬编码修改:若代码中存在旧域名硬编码(Hardcode),需同步批量更新。

3.2 触发器(Triggers)绑定

  • 核心步骤:在 Cloudflare Worker 控制面板,将新域名路由(示例:static\harrysong\online\)添加至 HTTP Routes 路由列表。

  • 重要注意:仅修改代码、未绑定路由,流量会直接穿透 Worker 直达源站,导致防盗链、资源加速等功能全部失效。

四、 托管层:Netlify 的平滑过渡

4.1 主域名变更

登录 Netlify 后台,将 harrysong\online 设置为站点 Primary domain(主域名)。

4.2 HTTPS 证书重新激活

  • 开启 Cloudflare DNS 解析小黄云(代理模式)后,在 Netlify 后台手动刷新 SSL 证书状态。

  • 避坑提示:若出现证书签发失败,大概率是 Cloudflare SSL/TLS 安全模式过高;迁移期间建议临时调整为 Full(完全模式)

五、 流量收拢:301 永久重定向

为保留旧域名 SEO 权重、留存历史外链流量,需在 Cloudflare 配置域名重定向规则。

5.1 重定向规则配置

使用 Redirect Rules 规则,将旧域名 harrysong\space 全部请求设置为 301 永久重定向,跳转至新域名。

5.2 保留访问路径

开启路径携带功能,保证精准跳转,示例:harrysong\space/post\1harrysong\online\post\1,禁止仅跳转首页。

⚠️ 避坑检查清单(Checklist)

  • DNS 小黄云:Worker 依赖 Cloudflare 代理,相关解析记录代理状态必须为 Proxied(已代理)

  • 缓存清理:迁移完成后,在 Cloudflare 后台执行 Purge Everything,清除全局缓存,避免读取旧重定向规则

  • Referer 校验:图片加载异常时,按 F12 打开浏览器开发者工具,核查请求头 Referer 是否为新域名、Worker 响应状态是否正常