你是否留心過:經過域名訪問網站首頁時,網頁返回Http狀態碼是什麼?甚至訪問內頁時,Http狀態碼又是什麼嗎?php
大多數人可能會想固然的認爲首頁返回的確定是200,由於咱們很容易觀察到首頁可否能夠正常打開以及URL是否發生過明顯跳轉,然而,真的如咱們預想的那樣嗎!html
在近期接手的SEO項目裏,咱們就遇到相似的問題:web
以上數據暴露出幾個嚴重的SEO問題:sql
一、主域與www域之間的跳轉問題工具
二、域訪問與默認首頁之間的跳轉問題網站
三、頁面能夠打開可是狀態碼返回的不是200ui
上述SEO問題的處理邏輯:搜索引擎
一、一般狀況下,網站主要使用www域,而不使用主域(國內網民的訪問習慣),考慮到SEO因素,爲了不復制網頁問題,通常會將主域作301跳轉而後重定向到www二級域,這樣搜索引擎就不會收錄兩個版本的網站首頁,也避免了頁面權重分流。htm
二、域訪問與默認首頁之間本不該該存在任何跳轉動做。試想一下,若是直接訪問網站域名卻發生了跳轉,不管是301仍是302,首頁權重都會被下降,這對SEO而言是多麼可怕的一件事情,首頁低權重,內頁也在劫難逃!正確的SEO處理方式是:訪問域時,直接返回200。以DedeCMS爲例,若是網站的默認首頁不是index.html或者index.php優先級高於index.html,當以域方式訪問網站首頁時,程序默認設置爲URL發生301跳轉至index.html。索引
三、用工具全面檢測下頁面Http狀態碼,確認頁面200。
DeDeCMS解決www域跳轉與默認首頁跳轉問題的方法:
修改根目錄下的index.php文件,用如下代碼進行替換:
PHP代碼
<?php
//主域名301跳轉到www
$redirect301=1; //301跳轉開關,1表明打開,0表明關閉
$index_file=‘index.html’; //指定網站默認首頁文件,DeDeCMS設置爲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跳轉到www
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();
}
include(dirname(__FILE__).'/'.$index_file); //聯接網站默認首頁文件
?>
本文轉自 ☆★ 一應俱全 ★☆ - www.baoluowanxiang.com 轉載請註明出處,侵權必究!
原文連接:http://www.baoluowanxiang.com/a/website/cms/2011/0928/3566.html