当前位置:首页 > CMS教程 > 其它CMS > 列表

让Emlog支持一空间多域名实现方法

发布:smiling 来源: PHP粉丝网  添加日期:2014-12-06 11:10:36 浏览: 评论:0 

有些 EMER 经常将多个域名绑在同一个空间,其实对博客程序而言,在大多数正常情况下,非主域名只能访问首页,内页的链接仍然是主域名的,那么,对于那些手里面有许多域名,又舍不得丢的 EMER,是不是就没有办法了呢?

办法肯定是有的,而且不只一种,前两天和一个博友交流,他说在WP里面就有支持多域名的代码,而且他在 Emlog 上实现过,于是我向他要了这段代码,居然只有2行,于是对那些高手不禁心向往之.

好了,现在谈正题,对于一空间多域名的问题,我目前知道的方法有这么几个.

方法一:

设定一个主域名,然后将其它域名全部交给提供免费域名解析服务的网站来处理,这种网站很多,我用的是 namecheap.com,解析的时候全部用301转到主域名下,包括@和www两条记录.

这种方法不会影响到主域名的权重,并且只需要在空间绑上主域名就可以了,你甚至可以把你主域名的 www.phpfensi.com 也用301直接转到 phpfensi.com ,反之亦然,省去修改伪静态规则文件的麻烦,不过这种方法也有不方便的地方,就是以非主域名开头的所有链接,都只能转到主域名的首页.

方法二:

按正常方法解析并绑定所有域名,一般是不带 www 的做 A 记录,带 www 的做 C 记录,然后在伪静态规则文件中加入301转向代码即可,以常见的 Apache 平台为例,其它平台请参考论坛相关资料,本文不作详述,只需在.htaccess 文件中加入如下代码:

RewriteCond %{HTTP_HOST} ^www.old.com$ [NC]

RewriteRule ^(.*)$ http://www.new.com/$1 [R=301,L]

这样,所有旧域名 www.old.com 的链接都会自动转向新域名 www.new.com,包括后面的链接,如果还有其它域名要转,比如不带 www 的 old.com,就把上面两句代码再复制一份,修改第一句代码中的域名就行了.

要注意的是,上面两种方法实际上都是将非主域名自动转向主域名,这样有利于主域名的收录和权重,但有些博友可能还是希望能够单独访问非主域名,那就需要使用下面的第三种方法.

方法三:

这个就是上面那个博友的方法了,如同方法二,先按正常方法解析并绑定所有域名,然后在 includeliboption.php 文件最前面的注释语句之后添加2行代码:

$siteurl = 'http://'.$_SERVER['HTTP_HOST'].'/';

define('BLOG_URL', $siteurl);

这样就可以支持多域名了,该博友给我代码的时候说,将博客安装在子目录不能使用上述代码,否则博客将无法正常使用,但经我测试,发现并没有问题,你若将博客安装到网站的 blog 目录下面,则只需将上述代码改为:

$siteurl = 'http://'.$_SERVER['HTTP_HOST'].'/blog/';

define('BLOG_URL', $siteurl);

只要记住,无论安装到哪里,都必须以“/”结尾,否则就真的无法正常使用了,需要注意的是,用这种方法所有的域名会平分权重,不利于主域名的收录.

方法四:

有些 EMER 可能还会申请一些免费空间,然后用一个跳转页面转到主域名,这种方法虽然可行,但并不可取,除了会和主域名平分权重之外,还可能被认为是作弊,影响到主域名的收录.

上面的方法中,我推荐的是方法二,而我自己则是方法二、方法三,只设置带www的转向不带www,或者相反,同时使用,因为在后台修改了伪静态方式之后,.htaccess 文件会自动还原,如果同时使用了方法三,就不会因为丢失 CSS 文件而令页面惨不忍睹.

Tags: Emlog多域名 Emlog空间

分享到: