最近打算把博客的现在的域名 sxj.xyz
换成 shenxiaojian.com
,同时也希望在搜索引擎中的权重尽量不受影响。换域名本身不难,但要注意的地方是需要保证访问旧域名相关的 URL 时都能重定向到新域名,而且搜索引擎也要显示新域名的搜索结果。
解析新域名
首先,新增一条 CNAME 类型的记录,将新域名解析到your_username.github.io
,同时再新增一条 CNAME 类型的记录,将顶点域名shenxiaojian.com
重定向到www.shenxiaojian.com
。这样,无论访问www.shenxiaojian.com
或shenxiaojian.com
,都可以访问到博客。
再调整your_username.github.io
仓库的 pages 部分的设置,将自定义域名改成新域名,同时启用 https 。
将旧域名 301 重定向到新域名
将旧域名 301 重定向到新域名就会将所有访问 www.sxj.xyz
和 sxj.xyz
的请求(包含 http 和 https 协议)重定向到 https://www.shenxiaojian.com
。而且搜索引擎在爬取网页的时候也会知道我们更改了域名,从而更新搜索结果的域名。
这里借助 Cloudfare 实现旧域名 301 重定向到新域名。
首先,更改旧域名的 DNS 解析,将主机名为 www 的 A 记录和主机名为 @ 的 A 记录(顶点域名)随便解析到一个 ip,这里以 8.8.8.8
为例。之所以可以随便解析,是因为这里的解析只是告诉 Cloudfare 我们解析了这两个主机名,后面添加了规则后会按照规则跳转到新域名,而不会访问现在解析的 ip。同时,需要代理状态是已代理
,如果代理状态是DNS only
的话,Cloudfare会如实解析DNS,而不会管设置的页面规则。
然后在页面规则里,添加 301 重定向的规则:
*sxj.xyz/*
表示这条规则适用于 sxj.xyz
这个域名及其下面的子域(例如 www )的所有网页( http 和 https 协议都包含)。https://www.shenxiaojian.com/$2
中的$2
表示 *sxj.xyz/*
中第二个 *
所指代的所有内容。
通知搜索引擎(选做)
为了更快的让搜索引擎知道,我们还可以手动的通知搜索引擎,我们的旧域名已经重定向到了新域名,具体的步骤网上都有,这里就不赘述了。