一个wordpress如何绑定多域名
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
今天有客户咨询如何让一个wordpress绑定多个域名,客户说以前有一个域名为www.a.com现在呢,感觉www.b.com也不错,但是又不想做两个官网,也不想做301,就是想让两个域名都可以打开,用wordpress的朋友都知道,WordPress在安装的时候会默认绑定当前的域名,后续绑定其他的域名但是页面的链接也还是安装时候的域名。那么今天给大家分享一下WordPress绑定多个域名或者取消域名绑定限制的方法。
1. 打开网站根目录下的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']);
}
把指定的域名放在$domain数组里面即可。
PS:
如果是https,请修改代码里面的http://为https://;
如果网站安装在二级目录,则将’http://’ . $_SERVER[‘HTTP_HOST’]修改为’http://’ . $_SERVER[‘HTTP_HOST’].’/对应目录名’
2. 在完成上面的工作以后,你的网站已经可以实现多域名访问了,但是还是有一个问题,那就是静态资源,在WordPress上传的图片插入文章里面,地址是固定的,修改域名以后,并不会修改图片的域名,所以还需要修改静态文件地址,使用以下代码可以解决:
define( 'WP_CONTENT_URL', '/wp-content');
把这段代码加入上面的代码下面即可。
简单粗暴的代码如下:
然后在主域名网站(放置程序所在网站目录)内编辑wp-config.php,加入以下代码
//使用ssl的域名
$ssldomain = array("www.aaa.com","aaa.com");
if(in_array($_SERVER['HTTP_HOST'], $ssldomain)){
define('WP_SITEURL', 'https://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'https://' . $_SERVER['HTTP_HOST']);
}
//非ssl域名
$nonssldomain = array("www.bbb.com","bbb.com","www.ccc.com","ccc.com","www.ddd.com","ddd.com","www.eee.com","eee.com","www.fff.com","fff.com");
if(in_array($_SERVER['HTTP_HOST'], $nonssldomain)){
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
}
define( 'WP_CONTENT_URL', '/wp-content');
打开WordPress目录下的wp-config.php文件,在里面添加下面这段内容:
/* Enable multiple domains access. */
$current_sitename= $_SERVER[‘HTTP_HOST’];
if ($current_sitename == “www.1.com”) {
define(“WP_SITEURL”, “http://www.1.com”);
define(“WP_HOME”, “http://www.1.com”);
} elseif ($current_sitename == “www.2.net”) {
define(“WP_SITEURL”, “http://www.2.net”);
define(“WP_HOME”, “http://www.2.net”);
}
=============================================================
也可定义为不同文件夹以显示不同内容
/* Enable multiple domains access. */
$current_sitename= $_SERVER[‘HTTP_HOST’];
if ($current_sitename == “www.1.com”) {
define(“WP_SITEURL”, “http://www.1.com”);
define(“WP_HOME”, “http://www.1.com”);
} elseif ($current_sitename == “www.2.net”) {
define(“WP_SITEURL”, “/blog”);
define(“WP_HOME”, “/blog”);
}
注意上述代码需要添加在
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . ‘wp-settings.php’);
的前面才可以生效哦~~。
上面的这段代码根据HTTP请求中的参数修改了WP_SITEURL和WP_HOME常量,WordPress正是靠这两个常量来判断站点的地址。
由于配置文件中定义的常量具有较高的优先级,覆盖了数据库中定义的站点地址,因此就实现了多域名访问。
到这里你的网站已经完美的突破了域名绑定的限制了,多种可以多域名访问的,希望能帮助大家哦!还记得有一个可以修改数据库的方法,自己也没有研究出,但是以前见过也忘记了,今天客户需要才想起来写教程,尴尬~~~~
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!
博主,这样设置没用啊,我用的是宝塔,我套路一个cf,是不是这个问题使用没有用