虛擬主機301重定向詳細教程,以DedeCms為例
來源:程序員人生 發布時間:2013-10-14 13:16:20 閱讀次數:2848次
剛開始和絕大部分站長一樣,起初也以為好幾個域名綁到同一個網站,會增加收錄和流量。但是隨著時間的推移,并沒有達到自己想要的效果,反而是收錄減少、Pr下降。有天一個站長朋友的話提醒了我“做301嗎”。于是在網上查找關于301的內容,才發現301重定向對于多個域名指向同一網站具有非常好的SEO效果(在這之前我根本就不知道301是什么,汗?。┯绕涫菍Ω鼡Q域名和集中權重。301重定向怎么做呢?又起初查找。檢驗地帶網用的是dede5.6的程序,win虛擬主機??墒蔷W上對于這種情況幾乎沒有詳細方法。最多就是來段php代碼:
<?php
{
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:http://chunse.net.cn");
exit();
}
?>
這段代碼怎么用?放在哪里?如何實現?卻都沒有一個詳細的說明。經過整整2天的查資料、自己摸索和試驗,終于實現了不同域名、不帶www定向到帶www和3.級域名的301重定向。下面是詳細辦法:
一、不同域名的重定向(網上的方法就可以實現)比如www.chunse.net.cn定向到chunse.net.cn(chunse.net.cn作為你希望搜索引擎抓取的主域名)
1、虛擬空間一般都會有子目錄功能,將你需要重定向的域名比如www.chunse.net.cn綁定到子目錄
2、創建一個index.php文件
文件內容:這里有2種寫法
(1)
<?php
{
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:http://chunse.net.cn");
exit();
}
?>
(2)這是針對有2個以上的次級域名(也就是除chunse.net.cn之外的域名)
<?php
$HOST=$_SERVER['HTTP_HOST'];
if ($HOST=="www.chunse.net.cn" || $HOST=="bbs.chunse.net.cn"){
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:http://chunse.net.cn");
exit();
}
?>
這段代碼的前提是你必須將其他域名解析到子目錄所在的IP地址!!!
3、將index.php上傳到子目錄的根目錄下面。現在試試點擊www.chunse.net.cn是不是定向到chunse.net.cn
二、不帶www定向到帶www和3.級域名的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();
}
//自動生成HTML版
if(isset($_GET['upcache']))
{
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->SaveToHtml(dirname(__FILE__).'/index.html');
include(dirname(__FILE__).'/index.html');
exit();
}
else
{
header('HTTP/1.1 301 Moved Permanently');
header('Location:index.html');
}
?>
要實現301重定向實際上很簡單(雖然簡單,但是是我試驗了N次、N種方法才成功的?。?
用下面代碼替換原有的index.php內容:(由于這里會涉及到效果演示,沒有網址將無法實現。如違反規定,請管理員修改或刪掉!)
<?php
$HOST=$_SERVER['HTTP_HOST'];
if ($HOST=="www.chunse.net.cn" || $HOST=="chunse.4.guoxiong.cn"){
Header("HTTP/1.1 301 Moved Permanently");
Header("Location:http://chunse.net.cn");
exit();
}
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
header('Location:install/index.php');
exit();
}
//自動生成HTML版
if(isset($_GET['upcache']))
{
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->SaveToHtml(dirname(__FILE__).'/index.html');
include(dirname(__FILE__).'/index.html');
exit();
}
else
{
header('HTTP/1.1 301 Moved Permanently');
header('Location:index.html');
}
?>
請注意,這里增加了紅色部分的代碼!使用時請將里面的域名換成自己的!
OK了,現在你試著點擊www.chunse.net.cn和chunse.4.guoxiong.cn,是不是定向到了chunse.net.cn。
你還可以使用檢測工具http://www.seoconsultants.com/tools/headers.asp#results
http://www.seobox.org/getheader.htm(這個是中文的)
查看是不是返回到了301狀態。
上面是一個新手摸索出來的方法,如有不妥,請高手指教?。。?!
本文轉自:DedeCMS官方論壇
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈