一个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正是靠这两个常量来判断站点的地址。
由于配置文件中定义的常量具有较高的优先级,覆盖了数据库中定义的站点地址,因此就实现了多域名访问。

到这里你的网站已经完美的突破了域名绑定的限制了,多种可以多域名访问的,希望能帮助大家哦!还记得有一个可以修改数据库的方法,自己也没有研究出,但是以前见过也忘记了,今天客户需要才想起来写教程,尴尬~~~~

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

更多请关注:老梁`s Blog

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。 您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
Laoliang.Net资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:service@laoliang.net
老梁`s Blog(老梁博客) » 一个wordpress如何绑定多域名

1 评论

  1. 博主,这样设置没用啊,我用的是宝塔,我套路一个cf,是不是这个问题使用没有用

发表评论

本站承接,网站推广(SEM,SEO),软件的安装的安装与调试,服务器的推荐以及配置,APP的开发与维护,网络或者web维护;财务软件,客户管理系统,人力资源,超市POS,医药管理,服务器安全,ecshop,金蝶,用友,管家婆;

立即查看 了解详情