之前有一个301跳转汇总的贴子,写和一些有关301跳转的各种方法,但是有时候我们会有特殊要求,比如:我现在的域名需要将不带www的跳转到带www的域名中,网站又不支持.htaccess,怎么办?
一般这种情况,我们为了避免出现大量的不带www的域名页面被收录,可以只把首页进行跳转,大多数情况下,只要将首页跳转到带www的域名下,那么内页就很少有不带www域名的页面被收录的情况,其实这个很简单,拿PHP做例子(其他的因为没有环境测试,所以就不列出了):
查了一下google,有人写了一个PHP程序,是将多个域名映射在同一空间下,内容如下:
<?php
$domain_cn=”jarfee.cn”;
$domain_com=”google.com”;
$dot_cn_url=”/blog/”;
$dot_com_url=”index.php”;
if(($HTTP_HOST==”$domain_cn”) or ($HTTP_HOST==”www.$domain_cn”))
{
Header(“Location: $dot_cn_url”);
}
elseif(($HTTP_HOST==”$domain_com”) or ($HTTP_HOST==”www.$domain_com”))
{
Header(“Location: $dot_com_url”);
}
else
{
include_once(“index.php”);
}
?>
这个程序主要是将google.com和jarfee.cn映射到同一个空间里,我们可以用它的前部分来进行我们的从不带www域名跳转到带www域名:
<?php
if($HTTP_HOST== “jarfee.cn”)
{
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.jarfee.cn/”);
}
?>
可是,经过测试,这个是错误的,错到哪里?
Notice: Undefined variable: HTTP_HOST in F:\jarfee.cn\htdocs\goods.php on line 13
查看了下,这个错误主要是php发现HTTP_HOST未定义,怎么会出现这个情况?又查询了下Google发现,这个$HTTP_HOST有时候并不能准确的获取域名信息,可以用$_SERVER['HTTP_HOST'] 代替:
<?php
if($_SERVER['HTTP_HOST'] == “jarfee.cn”)
{
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.jarfee.cn/”);
}
?>
成功!(如果要参考上面信息,将里面的jarfee.cn换成你自己的域名)
![Jarfee[加飞]的博客](http://www.jarfee.cn/blog/wp-content/themes/atahualpa/images/logo.png)