域名迁移记录

一、同步上线主要功能

0. 目前有两个域名

  • czjun.top全新域名 你值得拥有
  • 5201460.xyz即将过期域名

目标:我们先再不动老域名的情况下,直接将新域名指向blog

1. 域名购买与备案

我是在阿里云购买的.top域名 image-20260227190045483

10年240RMB,大致和6位数字.xyz的域名费用齐平。

随后就是要实名认证,我有点记不清在国内运营商购买的域名是否必须要备案才能迁移DNS域名服务器

不过无论怎样这次我并没有选择将域名托管至cloudflare,因为从域名解析和cdn加速访问的角度来说,我想看看国内的服务商到底有多快,是否真的存在所谓优势

🆗在根据官方的教程完成上述两大操作后,就要开始真正的任务了

2. 域名重定向

没错就是修改DNS解析:因为我是GitHub page 所以参考了以下文档

管理 GitHub Pages 站点的自定义域 - GitHub 文档

  • 简单来说可以从你是否选用子域名分为两个方案

方案 A:使用 www 子域名(推荐blog)

  1. CNAME 记录:

    • 主机记录:wwwblog
    • 记录类型:CNAME
    • 记录值:czjun.github.io

方案 B:直接使用根域名(需 DNS 服务商支持 CNAME 平滑化)

如果使用 czjun.top 作为主域名,需要你的 DNS 服务商支持 CNAME flatteningANAME 记录。

  1. CNAME/ANAME 记录:

    • 主机记录:@
    • 记录类型:CNAMEANAME
    • 记录值:czjun.github.io

或者使用 A/AAAA 记录

  1. A 记录(用于根域名重定向):

    • 主机记录:@
    • 记录类型:A
    • 记录值:添加 GitHub Pages 的 IPv4 地址(当前为 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153
  2. AAAA 记录(可选,用于 IPv6):

    • 主机记录:@
    • 记录类型:AAAA
    • 记录值:添加 GitHub Pages 的 IPv6 地址(当前为 2606:50c0:8000::153, 2606:50c0:8001::153, 2606:50c0:8002::153, 2606:50c0:8003::153

⚠️ 注意:直接在根域名 @ 上设置 CNAME 可能会与 MX 邮件记录冲突,因此使用 A/AAAA 记录 是更稳妥的选择。

我选择的是方案A,操作完后如图所示(最后一条)

image-20260227194457429

事实上目前我们应该只用了最后一条解析,至于为什么配置根域名后面会讲
接下来尝试访问网站,输入blog.czjun.top

image-20260227192416606

会发现现在没有了https,没错,比较于cloudflare、阿里云是不会自动签发ssl证书

但是你别急,好在Github会出手

3.在 GitHub Pages 中设置自定义域名

  1. 进入你的 GitHub 仓库 czjun/czjun.github.io
  2. 点击顶部导航栏的 Settings(设置)。
  3. 在左侧菜单中找到并点击 Pages(页面)。
  4. Custom domain(自定义域名)输入框中,填写你的域名,例如 www.czjun.topczjun.top
  5. 点击 Save(保存)。
  6. 保存后,GitHub 会自动检查你的 DNS 配置。检查通过后,Enforce HTTPS(强制 HTTPS)选项将变为可勾选状态。
  7. 勾选 Enforce HTTPS,GitHub 会自动为你颁发并配置 Let’s Encrypt SSL 证书。

image-20260227195519296

同时你也可以选择阿里云手动签发(事实上他也支持自动签发),但是如果你和我也一样也是用的GitHub Page,相信我,交给GitHub 不仅仅是因为方便,更是因为我这种无后端的博客,无法手动部署证书到 GitHub Pages,难绷😎🤡🤡🤣

4. 创建并提交 CNAME 文件

为了确保配置的持久性,建议在你的仓库根目录下创建一个 CNAME 文件:

  1. 在你的本地仓库根目录下,新建一个名为 CNAME 的文件(无后缀名)。

  2. 文件内容只写一行你的自定义域名,例如:

    1
    www.czjun.top

    1
    czjun.top
  3. 将这个文件提交并推送到 GitHub 仓库

一键部署 | Hexo

记住 Github Pages 需要使用 CNAME 文件自定义域名,请将 CNAME 文件置于 source 目录下,只有这样 hexo deploy 才能将 CNAME 文件一并推送至部署分支。image-20260227225535431

5. 验证与等待

  • DNS 传播:DNS 记录的更改可能需要几分钟到几小时(最长 48 小时)在全球范围内生效。可以使用 nslookup czjun.topdig czjun.top 命令来检查解析是否指向了 GitHub 的服务器。

  • 证书颁发:在你勾选 Enforce HTTPS 后,GitHub 需要一些时间来验证域名所有权并颁发证书。这个过程通常在几分钟到一小时内完成。

  • 测试访问:证书颁发完成后,可以通过 https://blog.czjun.tophttps://czjun.top 来访问网站尝试。

6. 常见问题排查

  • 404 错误:确保 GitHub Pages 设置中的自定义域名与 DNS 解析的域名完全一致,并且仓库根目录下的 CNAME 文件内容正确。
  • HTTPS 无法开启:检查 DNS 解析是否正确,GitHub 能否成功访问你的域名。如果一直无法开启,可以尝试移除并重新添加自定义域名。
  • 证书错误:这通常是因为证书还在颁发中,或者浏览器缓存了旧的证书。请耐心等待,或清除浏览器缓存后重试。、

7. 我还是想用根/二级域名

现在通过二级域名是访问正常了,但是每次输入这个blog.也太难受了,但是输入根域名又无法访问(因为配置了 A/AAAA 记录指向 GitHub Pages 的 IP,但 GitHub Pages 没有把 czjun.top 作为自定义域名,所以访问时会返回 404)有没有解决办法呢?

image-20260227200745451

有的兄弟有的,那就是

方案一: 显性 URL 转发

  • 记录:
  • 主机记录:@
  • 记录类型:显性 URL
  • 记录值:https://blog.czjun.top
  • 选择 “301 永久重定向”。

这种方式下,用户访问 czjun.top 时,浏览器地址栏会变成 blog.czjun.top

在哪里创建显性 URL 转发?

在 Cloudflare 控制台,进入你的域名,点击 Rules -> Page Rules -> 重定向到新 URL

在阿里云则是在域名解析直接填写,而且跳转的域名必须备案🤡🤡🤡

如果你也因为备案问题无法跳转不妨试试

方案二:使用 GitHub Pages 内置的重定向

创建一个新的仓库

  • 新建一个名为 czjun/czjun.top 的仓库。

  • 在这个仓库的根目录下,创建一个

    index.html 文件,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="refresh" content="0; URL='https://blog.czjun.top'" />
    <title>Redirecting...</title>
    </head>
    <body>
    Redirecting to <a href="https://blog.czjun.top">blog.czjun.top</a>...
    </body>
    </html>
  • 开启这个新仓库的 GitHub Pages 功能,并将 czjun.top 设置为它的自定义域名。

原理

  • 当用户访问 czjun.top 时,GitHub Pages 会返回这个 index.html 文件,浏览器会自动执行重定向,跳转到 blog.czjun.top

  • 这种方式完全在 GitHub 服务器上完成,不依赖阿里云的 URL 转发,因此不需要备案


至此,主要工作就完成的差不多了

我发现:还不如将域名托管到cloudflare上,但是我都忙活了这么半天了,不用下阿里云我心难安,日后再迁移吧🤡🤡🤡🤡

难绷在线图床必须用cf代理方便,于是火速换回cf,有一说一太方便了,自动扫描原DNS解析记录,我甚至什么都不用输入🤣🤣🤣🤣

很难想象第一章这点东西拖了不知道多久,2.27才写完,不过一动起手来了还是蛮快的,边写边改大概花了4h,主要是这个阿里云我还顺便搞了下ssl证书签发,可是后来发现根本用不上🤣🤣🤣🤣,这部分也没写进去,懒得写了(没必要就是)

二、其他与域名绑定的功能

其实就是在线图床(开始头大😥😥😥)

1.在线图床

我是用的是PicGo+cloudflare-R2储存桶的方案

所以这两个服务都要改动

先改CF的R2储存桶

  1. 添加自定义域

image-20260227214529641
image-20260227214542632

可以发现桶里的URL现在有两个了image-20260227214754934

  1. 禁用老域名,同时在 VScode 里直接查找替换,将 image.czjun.top 换成 image.czjun.top (只用换贴文和配置文件里的,html就不用换)可以顺手将非图片类也一并替换

image-20260227215629286

  1. 修改PicGo的相关选项

image-20260227215939980

  1. 万事大吉,可以和将要过期的域名说拜拜了

image-20260227220917832

刚好现在是过年,这何尝不是一种辞旧迎新
那么祝看到这里的你

🧨🎆🎆🎆🎇🎇🎇新年快乐、诸事顺利🎇🎇🎇🎆🎆🎆🧨