DeDeCMS默认首页及WWW域的301跳转 不指定

郝聪 , 2011/09/25 13:50 , 建站优化 , 评论(61) , 阅读(47833) , Via 本站原创 | |


更多



你是否留心过:通过域名访问网站首页时,网页返回Http状态码是什么?甚至访问内页时,Http状态码又是什么吗?

大多数人可能会想当然的认为首页返回的肯定是200,因为我们很容易观察到首页能否可以正常打开以及URL是否发生过明显跳转,然而,真的如我们预想的那样吗!

在近期接手的SEO项目里,我们就遇到类似的问题:

                                                                                                                                                                                                                                                        
URL
            
Http状态码
http://***.com302,跳转至http://***.com/index.html
http://***.com/index.html200
http://www.***.com302,跳转至http://www.***.com/index.html
http://www.***.com/index.html200
内页500

 

以上数据暴露出几个严重的SEO问题:

1、主域与www域之间的跳转问题

2、域访问与默认首页之间的跳转问题

3、页面可以打开但是状态码返回的不是200

上述SEO问题的处理逻辑:

1、通常情况下,网站主要使用www域,而不使用主域(国内网民的访问习惯),考虑到SEO因素,为了避免复制网页问题,一般会将主域做301跳转然后重定向到www二级域,这样搜索引擎就不会收录两个版本的网站首页,也避免了页面权重分流,具体实现方法,可以参考文章“如何实现两个域名内页之间的301跳转"

2、域访问与默认首页之间本不应该存在任何跳转动作。试想一下,如果直接访问网站域名却发生了跳转,无论是301还是302,首页权重都会被降低,这对SEO而言是多么可怕的一件事情,首页低权重,内页也在劫难逃!正确的SEO处理方式是:访问域时,直接返回200。以DedeCMS为例,如果网站的默认首页不是index.html或者index.php优先级高于index.html,当以域方式访问网站首页时,程序默认设置为URL发生301跳转至index.html。

3、用工具全面检测下页面Http状态码,确认页面200。

DeDeCMS解决www域跳转与默认首页跳转问题的方法:

修改根目录下的index.php文件,用以下代码进行替换:

PHP代码
        
  1. <?php  
  2.     
  3. //主域名301跳转到www  
  4.     
  5. $redirect301=1; //301跳转开关,1代表打开,0代表关闭  
  6.     
  7. $index_file='index.html'; //指定网站默认首页文件,DeDeCMS设置为index.html,不支持SSI(shtml/shtm)  
  8.     
  9.   
  10.     
  11. if(substr($_SERVER['SERVER_NAME'],0,4)!='www.'&&$redirect301) //判断URL中是否带www  
  12.     
  13. {  
  14.     
  15. header('HTTP/1.1 301 Moved Permanently');  
  16.     
  17. header('Location:http://www.'.$_SERVER['SERVER_NAME']); //301跳转到www  
  18.     
  19. exit();  
  20.     
  21. }  
  22.     
  23. if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))  
  24.     
  25. {  
  26.     
  27.     header('Location:install/index.php');  
  28.     
  29.     exit();  
  30.     
  31. }  
  32.     
  33. //自动生成HTML版  
  34.     
  35. if(isset($_GET['upcache']))  
  36.     
  37. {  
  38.     
  39.     require_once (dirname(__FILE__) . "/include/common.inc.php");  
  40.     
  41.     require_once DEDEINC."/arc.partview.class.php";  
  42.     
  43.     $GLOBALS['_arclistEnv'] = 'index';  
  44.     
  45.     $row = $dsql->GetOne("Select * From `#@__homepageset`");  
  46.     
  47.     $row['templet'] = MfTemplet($row['templet']);  
  48.     
  49.     $pv = new PartView();  
  50.     
  51.     $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);  
  52.     
  53.     $pv->SaveToHtml(dirname(__FILE__).'/index.html');  
  54.     
  55.     include(dirname(__FILE__).'/index.html');  
  56.     
  57.     exit();  
  58.     
  59. }  
  60.     
  61. include(dirname(__FILE__).'/'.$index_file); //联接网站默认首页文件  
  62.     
  63. ?>  
相关日志
PHP判断来路是手机端还是PC端,并根据终端配置不同301跳转页面
DeDeCMS自定义表单实现字段默认为必填项
DeDeCMS自定义表单提交数据时加入验证码功能
DeDeCMS调用自定义表单内容以及实现分页功能(Datalist运用实例)
DeDeCMS的channel标签支持limit(属性)功能
DeDeCMS获取上级栏目ID及顶级栏目ID
让DeDeCMS的channel标签支持调用栏目描述description及关键词keywords
DeDeCMS调用栏目排序编号(自动递增数字)
DeDeCMS安全设置:更改data目录命名
DedeCMS修改数据库表前缀"_dede"的方法

最后编辑: 郝聪 编辑于2011/09/25 15:32
è‚–ä¿Š Email
2011/09/26 09:28
还没用织梦做过301的。
分页: 4/4 第一页 上页 1 2 3 4 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]