saber 酱的抱枕

Fly me to the moon

12/29
2016
学习 软件

WordPress绑定多个域名的方法

之前我的博客是“saber.我爱你”域名,最近注册了“saber.love”,我想给我的博客同时启用这两个域名。

不过我遇到了一个问题:虽然saber.love可以解析到我的网站上,但是WordPress后台并没有绑定多个域名的功能。

WordPress的设置里有WP_SITEURL和WP_HOME,不管通过哪个域名进来,网站页面里所有的链接(如文章链接、后台路径等)的域名用的都是WP_SITEURL和WP_HOME里的设置。

我后台设置的WP_SITEURL和WP_HOME原本都是“http://www.saber.我爱你”,当我通过“saber.love”进入网站时,页面上所有链接依旧都是“http://www.saber.我爱你”开头的,点击任何链接就都又转到“saber.我爱你”了。

不过我们可以通过wp-config.php来动态设置WP_SITEURL和WP_HOME,可以真正的使用多域名打开网站,所有页面的链接都是对应的域名。

找到wp-config.php最后一行:

require_once(ABSPATH . 'wp-settings.php');

在它前面添加动态设置WP_SITEURL和WP_HOME的代码就可以了:

$current_sitename=$_SERVER['HTTP_HOST'];
if ($current_sitename=="saber.love"||$current_sitename=="www.saber.love") {
	define("WP_SITEURL", "http://www.saber.love");
	define("WP_HOME", "http://www.saber.love");
}else if ($current_sitename=="saber.love"||$current_sitename=="www.saber.love") {
	define("WP_SITEURL", "http://www.saber.love");
	define("WP_HOME", "http://www.saber.love");
}

这样设置后,网站所有页面均可以用我们设置的多个域名访问,包括后台操作都是完全正常的。

ps:上面代码中设置的WP_SITEURL和WP_HOME都会访问网站的根目录,实际上也可根据需要设置成任意层级的目录。

WordPress绑定多个域名的方法