迁移至 ohhere.xyz & WordPress 域名迁移教程

趁着 Uniregistry 促销 .xyz 域名,0.5 刀入了 ohhere.xyz,今天决定迁移到新域名。

首先,使用 acme.sh 获取 SSL 证书,见 这里,在 nginx 的配置文件中替换域名

sed -i 's|ohhere\.cf|ohhere.xyz|g' *.conf

接着,替换 WordPress 数据库中的域名,和网页上的域名,值得注意的是,需要关注https,以及数据库前缀可能是wordpress而不是wp

UPDATE wordpress_options SET option_value = replace( option_value, 'http://ohhere.cf', 'http://ohhere.xyz' ) WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wordpress_posts SET post_content = replace( post_content, 'http://ohhere.cf', 'http://ohhere.xyz' ) ;
UPDATE wordpress_posts SET guid = replace( guid, 'http://ohhere.cf', 'http://ohhere.xyz' ) ;
UPDATE wordpress_options SET option_value = replace( option_value, 'https://ohhere.cf', 'https://ohhere.xyz' ) WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wordpress_posts SET post_content = replace( post_content, 'https://ohhere.cf', 'https://ohhere.xyz' ) ;
UPDATE wordpress_posts SET guid = replace( guid, 'https://ohhere.cf', 'https://ohhere.xyz' ) ;

然后,替换 zmirror 配置文件 zmirror/config.py 中的域名

sed -i 's|ohhere\.cf|ohhere.xyz|g' config.py

接着 301 重定向原域名至新域名,规则类似于:

if ($host = 'ohhere.cf'){
    rewrite ^/(.*)$ https://ohhere.xyz/$1 permanent;
}

但是因为子域名实在太多,于是有了这样的脚本:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-

domains = ("ohhere", "www.ohhere", "kod.ohhere")
for domain in domains:
	print("if ($host = '%s.cf'){\n    rewrite ^/(.*)$ https://%s.xyz/$1 permanent;\n}\n" % (domain, domain))

重启 nginx 和 zmirror 即可生效

然后,到 Google Search Console 和 Bing Search Console 添加新域名,添加 sitemap.xml,并将旧域名转移至新域名,迁移完成


发表评论