pasckr 发表于 2016-5-9 15:31:29

DeDeCMS织梦默认首页及WWW域的301跳转




                你是否留心过:通过域名访问网站首页时,网页返回Http状态码是什么?甚至访问内页时,Http状态码又是什么吗?
  大多数人可能会想当然的认为首页返回的肯定是200,因为我们很容易观察到首页能否可以正常打开以及URL是否发生过明显跳转,然而,真的如我们预想的那样吗!
  在近期接手的SEO项目里,我们就遇到类似的问题:
http://img10.3lian.com/d0214/file/2011/09/28/3c759148d4ce62e3bc939431f439ac6d.jpg  以上数据暴露出几个严重的SEO问题:
  1、主域与www域之间的跳转问题
  2、域访问与默认首页之间的跳转问题
  3、页面可以打开但是状态码返回的不是200
  上述SEO问题的处理逻辑:
  1、通常情况下,网站主要使用www域,而不使用主域(国内网民的访问习惯),考虑到SEO因素,为了避免复制网页问题,一般会将主域做301跳转然后重定向到www二级域,这样搜索引擎就不会收录两个版本的网站首页,也避免了页面权重分流。
  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代码
  

                                    <?php
            //主域名301跳转到www
            $redirect301=1; //301跳转开关,1代表打开,0代表关闭
            $index_file=&lsquo;index.html&rsquo;; //指定网站默认首页文件,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__). &quot;/include/common.inc.php&quot;);
            require_once DEDEINC.&quot;/arc.partview.class.php&quot;;
            $GLOBALS['_arclistEnv'] = 'index';
            $row = $dsql->GetOne(&quot;Select * From `#@__homepageset`&quot;);
            $row['templet']= MfTemplet($row['templet']);
            $pv = new PartView();
            $pv-》SetTemplet($cfg_basedir .$cfg_templets_dir .&quot;/&quot;. $row['templet']);
            $pv-》SaveToHtml(dirname(__FILE__).'/index.html');
            include(dirname(__FILE__).'/index.html');
            exit();
            }
            include(dirname(__FILE__).'/'.$index_file); //联接网站默认首页文件
            ?>
                     
  原文地址:http://www.bloghuman.com/dedecms-www-defaultindex-301/
页: [1]
查看完整版本: DeDeCMS织梦默认首页及WWW域的301跳转