更换博客域名——将两个域名指向同一个 GitHub pages

最近打算把博客的现在的域名 sxj.xyz 换成 shenxiaojian.com ,同时也希望在搜索引擎中的权重尽量不受影响。换域名本身不难,但要注意的地方是需要保证访问旧域名相关的 URL 时都能重定向到新域名,而且搜索引擎也要显示新域名的搜索结果。

解析新域名

首先,新增一条 CNAME 类型的记录,将新域名解析到your_username.github.io,同时再新增一条 CNAME 类型的记录,将顶点域名shenxiaojian.com重定向到www.shenxiaojian.com。这样,无论访问www.shenxiaojian.comshenxiaojian.com,都可以访问到博客。

解析新域名

再调整your_username.github.io仓库的 pages 部分的设置,将自定义域名改成新域名,同时启用 https 。

调整博客仓库的 Pages 设置

将旧域名 301 重定向到新域名

将旧域名 301 重定向到新域名就会将所有访问 www.sxj.xyzsxj.xyz 的请求(包含 http 和 https 协议)重定向到 https://www.shenxiaojian.com 。而且搜索引擎在爬取网页的时候也会知道我们更改了域名,从而更新搜索结果的域名。

这里借助 Cloudfare 实现旧域名 301 重定向到新域名。

首先,更改旧域名的 DNS 解析,将主机名为 www 的 A 记录和主机名为 @ 的 A 记录(顶点域名)随便解析到一个 ip,这里以 8.8.8.8 为例。之所以可以随便解析,是因为这里的解析只是告诉 Cloudfare 我们解析了这两个主机名,后面添加了规则后会按照规则跳转到新域名,而不会访问现在解析的 ip。

修改旧域名的 DNS 解析

然后在页面规则里,添加 301 重定向的规则:

添加页面规则

*sxj.xyz/* 表示这条规则适用于 sxj.xyz 这个域名及其下面的子域(例如 www )的所有网页( http 和 https 协议都包含)。https://www.shenxiaojian.com/$2 中的$2表示 *sxj.xyz/* 中第二个 * 所指代的所有内容。

通知搜索引擎(选做)

为了更快的让搜索引擎知道,我们还可以手动的通知搜索引擎,我们的旧域名已经重定向到了新域名,具体的步骤网上都有,这里就不赘述了。