301定向技术全面解决

刚开始和很多站长一样,以为好几个域名绑到同一个网站,会增加收录和流量。但是随着时间的推移,并没有达到自己想要的效果,反而是收录减少、Pr下降。一直到有天一个站长朋友的话提醒了我301。于是在网上查找关于301的内容,才发现301重定向对于多个域名指向同一网站具有非常好的SEO效果(在这之前我根本就不知道301是什么,汗!)尤其是对更换域名和集中权重。301重定向怎么做呢?又开始查找。检验地带网用的是dede5.6的程序,win虚拟主机。可是网上对于这种情况几乎没有详细方法。最多就是来段php代码
<?php
{
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:http://www.39magic.com"); 
exit();
}
?>
这段代码怎么用?放在哪里?如何实现?却都没有一个详细的说明。经过整整2天的查资料、自己摸索和试验,终于实现了不同域名、不带www定向到带www3.级域名的301重定向。下面是详细办法:
一、不同域名的重定向(网上的方法就可以实现)比如[url] www.39magic.com定向到www.39magic.com [/url][url]www.39magic.com[/url]作为你希望搜索引擎抓取的主域名)
1
、虚拟空间一般都会有子目录功能,将你需要重定向的域名比如.a.cn绑定到子目录
2
、创建一个index.php文件
文件内容:这里有2种写法
1
<?php
{
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:[url]www.39magic.com[/url]"); 
exit();
}
?>
2)这是针对有2个以上的次级域名(也就是除[url]www.39magic.com[/url]之外的域名)
<?php
$HOST=$_SERVER['HTTP_HOST'];
if ($HOST=="www.a.cn" || $HOST=="www.b.cn"){
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:[url]http://www.39magic.com[/url]"); 
exit();
}
?>
这段代码的前提是你必须将其他域名解析到子目录所在的IP地址!!!
3
、将index.php上传到子目录的根目录下面。现在试试点击[url]www.a.cn是不是定向到www.a.com[/url]
二、不带www定向到带www3.级域名的301重定向
关于不带www的域名和空间商赠送的3.级域名会分散网站权重的文章很多,这里不多说。3.级域名是指空间商赠送给你的域名。
来看详细方法(这个是重点!试验了N次才成功!)
dede5.6
的程序中有自带的index.php
一般是这样:
<?php
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
     header('Location:install/index.php');
     exit();
}
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once DEDEINC."/arc.partview.class.php";
$GLOBALS['_arclistEnv'] = 'index';
$row = $dsql->GetOne("Select * From `dede_homepageset`");
$row['templet'] = MfTemplet($row['templet']);
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
$pv->Display();
?>
要实现301重定向实际上很简单(虽然简单,但是是我试验了N次、N种方法才成功的!)
用下面代码替换原有的index.php内容:(由于这里会涉及到效果演示,没有网址将无法实现。如违反规定,请管理员修改或删掉!)
<?php
$HOST=$_SERVER['HTTP_HOST'];
if ($HOST=="labdd.com" || $HOST=="fjrswne.dns6.53nic.com"){
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:[url]http://www.labdd.com[/url]"); 
exit();
}
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
     header('Location:install/index.php');
     exit();
}
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once DEDEINC."/arc.partview.class.php";
$GLOBALS['_arclistEnv'] = 'index';
$row = $dsql->GetOne("Select * From `dede_homepageset`");
$row['templet'] = MfTemplet($row['templet']);
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);
$pv->Display();
?>
请注意,这里增加了红色部分的代码!使用时请将里面的域名换成自己的!
OK
了,现在你试着点击labdd.comfjrswne.dns6.53nic.com,是不是定向到了[url]www.labdd.com[/url]
你还可以使用检测工具[url]http://www.seoconsultants.com/tools/headers.asp#results[/url]
[url]http://www.seobox.org/getheader.htm[/url]
(这个是中文的)
查看是不是返回到了301状态。
上面是一个新手摸索出来的方法,如有不妥,请高手指教!
本文由[url]www.labdd.com[/url]原创,转载请保留链接!
希望能给类似于检验地带网这种情况的站长朋友提供帮助!