让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空间
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)