WordPress多域名设置

因为某些原因,前段时间我需要用到多域名,所以就从网上找到了一些资料,整理了一下,记录下来分享给大家。所谓的WordPress多域名意思就是指多个网址共享一个WordPress程序,例如www.abc.com和www.bcd.com都指向同一个WordPress博客,打开两个网址看到的页面是相同的,而且固定链接也是根据访问网址的不同而不同。

WordPress设置

代码法

这个就是我使用的方法,非常简单在WordPress中只需要在配置文件wp-config.php中填入以下代码:

黑色字体为位置,红色字体为需要增加的部分,蓝色的字体HTTP_HOST则是需要配置的多域名位置。

/** WordPress 目录的绝对路径。 */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

/* 启用多域名支持。*/
$home = 'http://'.$_SERVER['HTTP_HOST'];
$siteurl = 'http://'.$_SERVER['HTTP_HOST'];
define('WP_HOME', $home);
define('WP_SITEURL', $siteurl);

/** 设置 WordPress 变量和包含文件。 */
require_once(ABSPATH . 'wp-settings.php');

参见我下面的例子。

因为配置文件比数据库的权限高,所以这样配置以后我们看到WordPress后台的常规选项网址项目变灰不可用。

插件法

看到网上的资料介绍说PS WP Multi Domain这款软件也同样可以解决相关问题。但是我注意到这个插件已经2年多没更新了,我也没有亲自测试是否可以使用,如果大家觉得代码方法比较麻烦可以试试这款插件。

BUG

我发现使用代码法虽然把WordPress成功启用了多域名,但是我自己的博客前台CSS都变样了,因为我是把博客迁移到其他主机位置然后再开启的多域名,我现在用的这个博客主题也很强大,不知道是否跟这个有关系,我后面关闭了多域名又迁移回原主机又正常了,不过我没有见到其他的朋友有过这样的经历。

主机设置

虽然设置了WordPress选项,但是实际上我们还要将建新的网址转到这个WordPress程序文件夹中。这里我只针对性的介绍cPanel和DirectAdmin面板设置,因为这两个面板非常常见,其他不常见的面板我也做不到面面俱到。

cPanel暂停域

首先我要介绍下这个暂停域附加域以及重新定向的区别。

名词解释

  • 附加域:即在cPanel主机上附加一个新域名,除了会增加根域的一个子域名以外也相当于把附加上的域绑定到cPanel主机上
  • 重新定向:有301永久定向跟302临时定向两个选项,区别只是给搜索引擎看的,实际上反应到域名上都是A域名转到B域名。
  • 暂停域:暂停域即我们需要的,它把两个域名都绑定指向到同一个目录。

名词示例

  • 附加域:cPanel主机的本身绑定的根域是abc.com,如果附加bcd.com以后,后台会自动生成bcd.abc.com的子域,无法删除,只能解除附加才会删除而且bcd.com也就绑定到了该cPanel主机上,其他地位跟abc.com相同。
  • 重新定向:cPanel主机的本身绑定的根域是abc.com,无论是301或是302重新定向到bcd.com,都会是访问abc.com会自动跳转到bcd.com去,而且固定链接也会显示bcd.com/1.html这种,不会再出现abc.com的链接。
  • 暂停域:cPanel主机的本身绑定的根域是abc.com,在暂停域中添加一个bcd.com,则可以管理该bcd.com的域名指向文件夹和abc.com的相同,一般都是直接指向到网页根目录。

*注:这里根据cPanel主机商的不同可能限制了附加域和暂停域的数量,同时有些主机商可能会要求附加域或是暂停域绑定之前首先将需要新域名必须解析到cPanel主机IP地址才可以附加或是暂停成功。

首先在cPanel控制面板中选择暂停的域。

然后在弹出的页面中输入需要暂停的新域名,点击【添加域】按钮。然后再修改设置,因为我手头上的cPanel主机没有支持暂停域的功能,所以没办法给大家截取成功暂停的页面。

DirectAdmin别名指向

DirectAdmin的别名指向跟cPanel的暂停域功能是一样的,都是将新域名指定跟原域名相同的目录,从而达到访问相同程序文件夹的目的。

点击【系统管理】中的【别名指向】

*注:可能因为DirectAdmin的版本或是主题不同划分的分类或是名称不相同。

在弹出的窗口中输入需要绑定新网址。例如我这里就是要将blog.nicky1605.com绑定到nicky1605.com上。

记得一定要勾选“创建为别名”的复选框。

其他面板

其实其他面板的思路跟cPanel或是DirectAdmin的思路一样,都是要想办法把两个网址绑定到同一个网站文件夹中,例如LNMP建立新域名的时候可以直接输入原域名的目录,我这里就不一一介绍了。

总结

看上去好像我说了一堆,其实原理非常简单:多个域名在主机系统中指向同一个WordPress目录,然后WordPress根据访问网址的不同显示不同的链接地址。即访问abc.com/1.html跟访问bcd.com/1.html是同一个页面,只不过因为属于的域名不同所以反映出来的网址不同。但是需要注意的是如果是使用多域名访问,WordPress的内链建议使用/1.html这种形式,不能带有域名前缀,否则会造成域名链接来回跳转SEO效果变差。

 

网友评论2

  1. 沙发
    逗婦乳:

    你的代码有问题,还有之前就搞过,然后你会发现google很聪明的,只有一个域名有收录

    2013-12-17 21:35 [回复]
    • Nicky:

      呃,我临时用用,没打算让Google收录神马的。

      2013-12-18 08:46 [回复]

发表评论

表情
还能输入210个字