2023年,我换了新域名「牡丹」

七年,博客域名一直是 apqx.me,从 GoDaddy 购买,每年续费 168 元就可以一直拥有它。

apqx 当然不是随机的无意义字符,其实是小时候喜欢的“长弓·阿帕奇”武装直升机的拼音缩写 apq。至于后面的 x,是因为当我决定要注册人生第一个域名 apq.me 时意外发现它已经属于别人,明明几个月前还是未注册状态,只能遗憾在后面加一个 x 变成 apqx.me。

域名

对非开发者,需要补充一些关于域名是什么的简单解释。服务器是现代互联网的基础设施,网站搭建在服务器上,在网络世界里只能通过 IP 地址去定位到一台特定服务器。使用 HTTP 协议可以在浏览器中输入一串 http://185.199.109.153:80 字符来访问搭建在 IP 地址为 185.199.109.153 的服务器上监听 80 端口的网站,全是数字很难记对吧,所以才有域名的概念。

域名可以由字母、数字甚至汉字组成,有意义的词自然比无规则数字清晰简洁,比如都熟悉的百度,它的域名是 baidu.com,在浏览器中输入就能跳转到百度网站。这个过程中浏览器做了 2 件事,先去 DNS 域名服务器查询域名对应的 IP 地址,再去访问 IP 对应的服务器,当然中间有很多复杂细节需要更多协议处理,但总之域名起到的就是这个作用。

由常用词组成的优质域名一直是不菲的资源,如 opera.com 这种在域名放出时就会被抢注,后来者想拥有只能高价从原主人那里购买。除常见的 .com 之外,近年开放很多如 .io .xyz .me .love 等新顶级域名,尤其 .me 非常适合做个人网站,而且相比 .com 更容易捡到“好词”。

牡丹

“牡丹”是一个对我而言十分特殊的词,源于昆曲《牡丹亭》的影响,所以真的幸运,在我之前居然没有人注册过 mudan.me。它相比抽象的 apqx.me 更有纪念意义,纪念我的整个前青春时代,纪念我从北方到南方的迁徙,纪念我的世界从灰暗向多彩的渐变。

杭州 西湖 日落 夕阳

如此,更换域名势在必行,有2个问题需要解决:

  • 旧域名重定向
  • 搜索引擎重新收录

apqx.me 已经使用太久,过去分享出去的链接都是这个域名,我当然希望它们在更换域名后依然能跳转到正确页面而不至于直接失效。解决方式有2种,旧域名通过 DNS 的 CNAME 直接指向新域名,或者用 HTTP 访问旧域名时插入一次 301 重定向到新域名。

这个博客托管在 GitHub Pages 上,仓库根目录下有一个 CNAME 文件标明网站域名。为 Pages 配置过自定义域名应该知道,交给它托管的网站 DNS 都指向同一个入口服务器,Pages 会在这里检测目标域名,与记录的已知域名对比,从而定位到要访问的网站。这种机制下,如果 DNS 添加一条 CNAME 记录,把 apqx.me 指向 mudan.me,即指向 GitHub Pages 的那台入口服务器。其检测到目标域名是 apqx.me,而在 Pages 所有仓库的 CNAME 文件中找不到该域名,会直接返回 404 页面,所以这种方式在这种情况下是不可行的。

只剩下另一种方案,但是 GitHub Pages 并不支持对 HTTP 协议的配置,所以并不能对请求直接返回 301 重定向。一个思路是在 Pages 上为 apqx.me 创建一个空白跳转站,用 JavaScript 把来访 URL 手动跳转到 mudan.me。这倒不是不可以,只是有点“糙”。

Cloudflare

车到山前自有路,我使用的是 Cloudflare 的 DNS 服务,众所周知 Cloudflare 本职是 CDN 内容分发网络,只需把 DNS 解析的 Proxy status 设置为 Proxied 就可以使用它的 CDN 服务。访问 apqx.me 的流量会先经过 Cloudflare 再到达托管网站的 GitHub Pages,此时 Cloudflare 作为中间人是能够对经过的 HTTP 请求返回 301 重定向的。

请忽略我在 A 记录里随意填写的 8.8.8.8,配置重定向后 HTTP 请求永远不会到达这个 IP,可以任意填。

cloudflare dns

在 Rules 中定义“中间人操作”。

cloudflare rules 301

将 settings 设为 Forwarding URL,status code 为 301 重定向,这样所有类似于 apqx.me/path1/path2 的请求都会被重定向到 mudan.me/path1/path2。

cloudflare rules 301

旧域名重定向,搜索引擎在抓取网页时能看到 301 跳转从而发现新域名,我也手动向 Google 提交了 mudan.me,等 URL 全部被收录后就可以放心删除旧域名。

apqx.me 保留一年作为缓冲,之前分享到微博等地方的链接会尽可能修改为新域名,无论是直接编辑微博还是添加一条提示域名变更的评论。一年后旧域名不再续费,它不再属于我,重定向会随之失效,再见了👋。

arrow_upward