你是否留心过:经过域名访问网站首页时,网页返回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