在未修改wp-config.php之前WordPress博客默认是不能实现多个域名独立访问的,即使我们绑定了多个域名,访问时也会自动跳转到安装站点时默认的域名,就连同一个域名带www和不带www都是自动跳转到默认域名。(这一点的不便之处深有体会,我找了几天才找到这个解决办法)
那如果我们需要WordPress绑定多个域名,并且都能度独立访问怎么办?
要想实现WordPress绑定多个域名,并且都能度独立访问也不难。我们只需修改wp-config.php文件即可,在站点根目录找到“wp-config.php”文件,然后根据自己需要添加下面任意一段代码即可。
一、实现任意域名访问
说明:在wp-config.php文件中加下面代码,就能实现绑定解析的域名都能正常访问博客,而且不会串联到其他域名。
1 2 |
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); |
二、限制特定域名访问
也可以只指定某些域名可以访问。注意把$domain = array('linqingmaoer.cn', 'www.linqingmaoer.cn');
括号内的域名改成你自己需要绑定的域名。这样就可以设置成你添加的这几个域名能正常访问。而其他未添加的域名则无法访问。
1 2 3 4 5 |
$domain = array('linqingmaoer.cn', 'www.linqingmaoer.cn'); if(in_array($_SERVER['HTTP_HOST'], $domain)) { define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']); } |
2. 在完成上面的工作以后,你的网站已经可以实现多域名访问了,但是还是有一个问题,那就是静态资源,在wordpress上传的图片插入文章里面,地址是固定的,修改域名以后,并不会修改图片的域名,所以还需要修改静态文件地址,使用以下代码可以解决:
1 |
define( 'WP_CONTENT_URL', '/wp-content'); |
把这段代码加入上面的代码下面即可。
注意上述代码需要添加在
1 2 |
/** Sets up WordPress vars and included files. */ require_once(ABSPATH . 'wp-settings.php'); |
的前面。
注意,上述配置之后,可能会出现跨域相互访问问题,需要配置跨域访问属性,如下:
指定多个域名(http://client1.xxx.com、http://client2.xxx.com等)跨域访问,则只需在server.php文件头部添加如下代码:
1 2 3 4 5 6 7 8 9 10 |
$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ''; $allow_origin = array( 'http://client1.xxx.com', 'http://client2.xxx.com' ); if(in_array($origin, $allow_origin)) { header('Access-Control-Allow-Origin:'.$origin); } |