一、为什么要迁移

在刚开始搭建网站的时候,看到网上常说直接用顶级域名作为网站的域名逐渐成为主流,并且域名更加简便,于是就采用了顶级域名的形式,但是后面还是踩了一些坑。其中最大的就是CNAME拉平问题,简而言之就是由于顶级域名和二级域名(www等各种域名)在DNS的解析方面存在一些不同,Cloudflare在解析顶级域名的CNAME的时候,会由Cloudflare的服务器出发去请求源IP。当遇到CDN时,会导致CDN无法正确获取访问者的真实IP(因为都要绕Cloudflare去获取IP),进而严重影响CDN加速的准确性。

二、迁移时遇到的坑

在迁移前参考了网络上的很多资料和教程,但这些资料和教程大多关注于域名变化(如a.com变为b.com)时的修改,对于a.com修改为www.a.com的操作较少提及。

首先在设置中,对“WordPress地址(URL)”和“站点地址(URL)”进行了修改。

接着在“Better Search Replace”插件中进行了数据库中数据的批量替换。

本以为经过以上的简单操作,网站的域名更换轻松搞定了,但当我刷新页面时,发现网站崩了,并且浏览器地址栏时而就会出现www.www.这种看似bug的域名存在。

三、分析原因

经过冷静思考后,我终于发现了原因,在第一步Wordpress设置修改“WordPress地址(URL)”和“站点地址(URL)”的时候,数据库其实已经经过了修改。但是第二步“Better Search Replace”插件修改的时候,第一步修改成功的“www.域名.top”中“域名.top”的也符合被替换的条件,因此又被替换成了“www.域名.top”,与前面的“www”就拼接成了“www.www.域名.top”,造成了网站的冲突与崩溃。

四、解决方案

在“Better Search Replace”插件中,将错误的“www.www.域名.top”作为替换条件(这样正确的www域名因为无法匹配替换条件不会被变动),替换为“www.域名.top”。

再刷新网站,修复成功。

五、问题反思

其实,在网站域名从顶级域名修改为www等二级域名的时候,无需通过第一步的Wordpress设置,可以直接进行第二步在“Better Search Replace”插件中进行替换操作的执行,如果有机会可以尝试一下。

爱科技、爱教育、爱生活
最后更新于 2025-11-22