机智的狐狸菌

WordPress绑定多域名
0x00:前言在WordPress的日常使用中,比如我这种有很多域名的博客主,往往拥有很多域名却想全部指向自己的博...
扫描右侧二维码阅读全文
10
2017/05

WordPress绑定多域名

0x00:前言

在WordPress的日常使用中,比如我这种有很多域名的博客主,往往拥有很多域名却想全部指向自己的博客主页。

但是直接将域名解析到博客服务器上又会发现WordPress并不能正常的运行!

比如会出现一些乱码,某个插件失灵了。自动跳回安装时使用的域名等情况。

0x01:原因

这是因为WordPress的链接使用的是绝对URL,这样做的好处是避免了因为路径处理错误而出现死链接。

但是路径信息是直接写在数据库里面的,从开发环境迁移到正式环境或者更换域名的时候需要修改数据库里面记录的域名信息才可以。


所以通过其他域名访问站点时,WordPress所需的部分文件还是通过原来的域名获取。

比如:www.bbb.com(新域名)访问站点,get到了index.php等主要文件,但是插件或者少部分文件可能就会通过www.aaa.com(老域名)进行获取。

0x02:解决方法

修改网站根目录下的wp-config.php文件,加入变量就可以实现多域名访问。

在文件中找到以下代码:

 

在这行代码之前加入以下代码

$yovisunhome = 'http://'.$_SERVER['HTTP_HOST'];    
$yovisunsiteurl = 'http://'.$_SERVER['HTTP_HOST'];    
define('WP_HOME', $yovisunhome);     
define('WP_SITEURL', $yovisunsiteurl);

PHP中的$_SERVER['HTTP_HOST'] 用于获得来路域名。

这样,就能根据来路为 WP_HOME 和 WP_SITEURL 变量赋值,实现 WordPress 多域名绑定。

 

如果网站WordPress不在网站根目录。则可以将代码修改这样:

define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST'].'/wordpress ');  
define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST'].'/wordpress ');

其中/wordpress为WordPress所在目录。

注意:1.经过以上设置以后,在仪表盘里面的“设置”->“常规”里面的“WordPress 地址(URL)”和“站点地址(URL)”选项就变为灰色,不可编辑。

注意:2.如果网站使用的是https协议,请修改代码里面的http://为https://。

完成以上骚操作之后,你的WordPress网站基本可以实现多域名访问了。

但是还有一个问题,就是网站上面的静态资源。

在WordPress的文章里面调用的图片&多媒体,地址是固定的,修改域名以后,并不会修改图片&多媒体的域名。

所以还需要把图片&多媒体的绝对地址修改为相对地址。

同样将以下代码加入上面的代码下面即可。

define( 'WP_CONTENT_URL', '/wp-content');

到此,你的网站完美实现多域名访问了。

0x03:参考文章

WordPress站点实现绑定多个域名: http://zhan.leiue.com/wordpress-multi-domain.html

Last modification:March 5th, 2018 at 04:22 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment