找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1129|回复: 0

[分享] DEDE织梦默认首页及www的301跳转

[复制链接]
发表于 2018-7-16 10:03:00 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
这是我在做站到最后上线的时候遇到的一个特别棘手的问题。本来租的是空间,在不找空间服务商解决或者空间不支持的的情况下:
第一个方法:
很多时候,客户朋友想要做一些默认首页及WWW域的301跳转,今天,企业网站源码为大家带来方法:大多数人可能会想当然的认为首页返回的肯定是200,因为我们很容易观察到首页能否可以正常打开以及URL是否发生过明显跳转,然而,真的如我们预想的那样吗!在近期接手的SEO项目里,我们就遇到类似的问题:
以上数据暴露出几个严重的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. //主域名301跳转到www     
  3. $redirect301=1; //301跳转开关,1代表打开,0代表关闭     
  4. $index_file='index.html'; //指定网站默认首页文件,DeDeCMS设置为index.html,不支持SSI(shtml/shtm)     
  5. if(substr($_SERVER['SERVER_NAME'],0,4)!='www.'&&$redirect301) //判断URL中是否带www     
  6. {     
  7. header('HTTP/1.1 301 Moved Permanently');     
  8. header('Location:http://www.'.$_SERVER['SERVER_NAME']); //301跳转到www     
  9. exit();     
  10. }     
  11. if(!file_exists(dirname(__FILE__).'/data/common.inc.php'))     
  12. {     
  13.     header('Location:install/index.php');     
  14.     exit();     
  15. }     
  16. //自动生成HTML版     
  17. if(isset($_GET['upcache']))     
  18. {     
  19.     require_once (dirname(__FILE__) . "/include/common.inc.php");    require_once DEDEINC."/arc.partview.class.php";     
  20.     $GLOBALS['_arclistEnv'] = 'index';     
  21.     $row = $dsql->GetOne("Select * From `dede_homepageset`");     
  22.     $row['templet'] = MfTemplet($row['templet']);     
  23.     $pv = new PartView();     
  24.     $pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $row['templet']);     
  25.     $pv->SaveToHtml(dirname(__FILE__).'/index.html');     
  26.     include(dirname(__FILE__).'/index.html');     
  27.     exit();     
  28. }     
  29. include(dirname(__FILE__).'/'.$index_file); //联接网站默认首页文件     
  30. ?>
复制代码

以上就是织梦dedecms网站默认首页及www域的301跳转。
以上办法只能解决首页的www跳转,而内容页还是跳转不了,下面这个方法通过.htaccess文件实现所有页面的跳转

  1. Options +FollowSymLinks
  2. RewriteEngine On
  3. RewriteCond %{HTTP_HOST} ^9iphp.com [NC]
  4. RewriteRule ^(.*)$ http://9iphp.com/$1 [L,R=301]
复制代码

第二种方法:
空间的默认首页顺序修改为 index.html index.php
具体操作:
独立主机用户:修改apache配置文件httpd.conf 中
  1. <IfModule dir_module>
  2.     DirectoryIndex index.html index.php index.php index.htm
  3. </IfModule>
复制代码

虚拟空间用户:到空间商提供的管理后台,修改默认首页

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

▶专业解决各类DiscuzX疑难杂症、discuz版本升级 、网站搬家 和 云服务器销售!▶有偿服务QQ 860855665 更多精品应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2025-3-3 06:57 , Processed in 0.046546 second(s), 8 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表