WordPress多域名绑定方法

分享到: 更多

有时候想,如果wordpress能像discuz论坛一样,能用其他域名或IP访问同一网站而且打开帖子就好了。我在本地装了 wordpress,而且绑定了域名,有网络的时候可以用域名访问和使用网站,但是没网络的时候想用IP访问使用却不能。比如我用192.168.1.2 访问本地的网站是可以的,但是wordpress的后台已经设置的网址是abc.com,所以没网络的时候,不能打开文章,因为它的网址还是 abc.com/123.html的格式,不是192.168.1.2/123.html格式。这一点就比不上discuz,因为discuz两者都可以 访问和使用网站。

从网上收到了一个好方法,让wordpress也像discuz一样,可以多域名或IP访问使用同一网站。在网站根目录找到wp-config.php 文件,在文件里找代码 require_once(ABSPATH . 'wp-settings.php'); 在其上面添加以下代码(一定要在这段代码的上面,不然无法读取CSS样式、图片等等。):

$home = ‘http://’.$_SERVER['HTTP_HOST'];
$siteurl = ‘http://’.$_SERVER['HTTP_HOST'];
define(‘WP_HOME’, $home);
define(‘WP_SITEURL’, $siteurl);

我们知道,PHP 中的 $_SERVER['HTTP_HOST'] 用于获得来路域名。这样,就能根据来路为 WP_HOME 和 WP_SITEURL 变量赋值,实现 WordPress 多域名绑定。

注意:为防止域名改变而造成图片不可用,必须在控制面板的“设置 (Settings) – 媒体 (Media)”里将“文件的完整 URL 地址”设为 “wp-content/uploads”(与“默认上传路径”参数相同)。如果你在固定链接里设置了非默认的其他项,在“文件的完整 URL 地址”添加 “wp-content/uploads”会使图片链接不对。

如果原来文章中曾经插入了附件的绝对地址,又不想修改原来的文章内容,可以用下面的插件解决,需要修改插件里的原域名地址。

BC_ReplaceLink

插件代码也贴出来:

<?php
/*
Plugin Name: BC_ReplaceLink
Plugin URI: http://www.bangcang.com
Description: 将文章内容中的链接替换
Version: 1.0
Author: 帮藏
Author URI: http://www.bangcang.com
*/
?>
<?php
/*  Copyright 2013  帮藏  (email : 21710047@qq.com)

*/

function my_the_content_filter($content) {
$oldurl = “http://www.pengpk.com”; //这里设置要替换的域名
$content = str_replace($oldurl, WP_SITEURL, $content);
return $content;
}

add_filter( ‘the_content’, ‘my_the_content_filter’ );
?>

 

Leave a Reply

Google AdWords