POST TIME:2017-11-13 00:55
這是我在做站到最后上線的時(shí)候遇到的一個(gè)特別棘手的問題。本來(lái)租的是空間,在不找空間服務(wù)商解決或者空間不支持的的情況下:
第一個(gè)方法:
很多時(shí)候,客戶朋友想要做一些默認(rèn)首頁(yè)及WWW域的301跳轉(zhuǎn),今天,企業(yè)網(wǎng)站源碼為大家?guī)?lái)方法:大多數(shù)人可能會(huì)想當(dāng)然的認(rèn)為首頁(yè)返回的肯定是200,因?yàn)槲覀兒苋菀子^察到首頁(yè)能否可以正常打開以及URL是否發(fā)生過明顯跳轉(zhuǎn),然而,真的如我們預(yù)想的那樣嗎!在近期接手的SEO項(xiàng)目里,我們就遇到類似的問題:
以上數(shù)據(jù)暴露出幾個(gè)嚴(yán)重的SEO問題:
1、主域與www域之間的跳轉(zhuǎn)問題
2、域訪問與默認(rèn)首頁(yè)之間的跳轉(zhuǎn)問題
3、頁(yè)面可以打開但是狀態(tài)碼返回的不是200
上述SEO問題的處理邏輯:
1、通常情況下,網(wǎng)站主要使用www域,而不使用主域(國(guó)內(nèi)網(wǎng)民的訪問習(xí)慣),考慮到SEO因素,為了避免復(fù)制網(wǎng)頁(yè)問題,一般會(huì)將主域做301跳轉(zhuǎn)然后重定向到www二級(jí)域,這樣搜索引擎就不會(huì)收錄兩個(gè)版本的網(wǎng)站首頁(yè),也避免了頁(yè)面權(quán)重分流,具體實(shí)現(xiàn)方法,可以參考文章“如何實(shí)現(xiàn)兩個(gè)域名內(nèi)頁(yè)之間的301跳轉(zhuǎn)”
2、域訪問與默認(rèn)首頁(yè)之間本不應(yīng)該存在任何跳轉(zhuǎn)動(dòng)作。試想一下,如果直接訪問網(wǎng)站域名卻發(fā)生了跳轉(zhuǎn),無(wú)論是301還是302,首頁(yè)權(quán)重都會(huì)被降低,這對(duì) SEO而言是多么可怕的一件事情,首頁(yè)低權(quán)重,內(nèi)頁(yè)也在劫難逃!正確的SEO處理方式是:訪問域時(shí),直接返回200。以DedeCMS為例,如果網(wǎng)站的默認(rèn)首頁(yè)不是index.html或者index.php優(yōu)先級(jí)高于index.html,當(dāng)以域方式訪問網(wǎng)站首頁(yè)時(shí),程序默認(rèn)設(shè)置為URL發(fā)生301跳轉(zhuǎn)至index.html。
3、用工具全面檢測(cè)下頁(yè)面Http狀態(tài)碼,確認(rèn)頁(yè)面200。 dedecms解決www域跳轉(zhuǎn)與默認(rèn)首頁(yè)跳轉(zhuǎn)問題的方法:修改根目錄下的index.php文件,用以下代碼進(jìn)行替換:
PHP代碼
<?php
//主域名301跳轉(zhuǎn)到www
$redirect301=1; //301跳轉(zhuǎn)開關(guān),1代表打開,0代表關(guān)閉
$index_file='index.html'; //指定網(wǎng)站默認(rèn)首頁(yè)文件,DeDeCMS設(shè)置為index.html,不支持SSI(shtml/shtm)
if(substr($_SERVER['SERVER_NAME'],0,4)!='www.'&&$redirect301) //判斷URL中是否帶www
{
header('HTTP/1.1 301 Moved Permanently');
header('Location:http://www.'.$_SERVER['SERVER_NAME']); //301跳轉(zhuǎn)到www
exit();
}
if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))
{
header('Location:install/index.php');
exit();
}
//自動(dòng)生成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();
}
include(dirname(__FILE__).'/'.$index_file); //聯(lián)接網(wǎng)站默認(rèn)首頁(yè)文件
?>以上就是織夢(mèng)dedecms網(wǎng)站默認(rèn)首頁(yè)及www域的301跳轉(zhuǎn)。
以上辦法只能解決首頁(yè)的www跳轉(zhuǎn),而內(nèi)容頁(yè)還是跳轉(zhuǎn)不了,下面這個(gè)方法通過.htaccess文件實(shí)現(xiàn)所有頁(yè)面的跳轉(zhuǎn)
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^9iphp.com [NC]
RewriteRule ^(.*)$ http://9iphp.com/$1 [L,R=301]第二種方法:
空間的默認(rèn)首頁(yè)順序修改為 index.html index.php
具體操作:
獨(dú)立主機(jī)用戶:修改apache配置文件httpd.conf 中
<IfModule dir_module>
DirectoryIndex index.html index.php index.php index.htm
</IfModule>虛擬空間用戶:到空間商提供的管理后臺(tái),修改默認(rèn)首頁(yè)
