在默认安装的情况下,会自动跳转到后台规定的 home_url 上去,如果你绑定了其他的域名到网站上,即使不会出现这个跳转,但你的网站内的链接都会带上原始安装域名的路径,这是由于内部的 home_url , site_url , image_url 等机制决定的,例如你的主题中使用了菜单功能,那么这些菜单中的链接是一定会带上原始安装域名的。
如果我们希望为网站绑定多个域名的话,下面介绍的是一种最简洁的方法了。
打开网站根目录下的 wp-config.php 文件,在该文件中,找到 define(‘wp_debug’, false);
然后,在该行代码的后面添加如下代码:
define('wp_siteurl', 'http://' . $_server['http_host']);
define('wp_home', 'http://' . $_server['http_host']);
这两句代码的意思是设置网站域名为当前访问的域名,也就是取消了域名的绑定。
如果是希望指定的几个域名绑定的话,可以使用下面的代码:
$domain = array("www.a.com", "www.b.com", "www.c.com");
if(in_array($_server['http_host'], $domain)){
define('wp_siteurl', 'http://' . $_server['http_host']);
define('wp_home', 'http://' . $_server['http_host']);
}
把指定的www.a.com、www.b.com、www.c.com几个域名放在 $domain 数组中即可。
注意事项:
1. 如果网站是https,请修改代码里面的 http:// 为 https:// ;
2. 如果网站安装在二级目录,则将 ‘http://’ . $_server[‘http_host’] 修改为 ‘http://’ . $_server[‘http_host’].’/对应目录名’;
3. 经过以上操作修改后,网站就可以实现多域名访问了,但是网站中的静态资源(比如后台上传的图片、视频等),在插入的文章里面的地址也是固定的(包含了原始安装域名)。以上修改域名操作后也并不会修改这些附件路径里的域名部分,所以,还需要修改静态文件地址,使用以下代码可以解决:
define( 'wp_content_url', '/wp-content');
把这段代码加入上面的代码下面即可。
至此,网站就可以实现多域名绑定了。
友情提示:
多域名绑定的方法理解起来其实很简单,通过对 wp_siteurl 和 wp_home 的重新定义,当你使用一个域名去访问它时,内部的机制就会将需要用到访问地址的地方全部修改为当前访问的域名。但这种方法过于暴力,对搜索引擎是不友好的,因为这种方法仅仅是让网站可以被多域名访问,可是,这会给搜索引擎带来识别上的困难,一般会认为是镜像网站,从而直接对能访问到的所有网站进行打压,甚至k掉所有域名。
方法来源: