首先声明下,本dedecms的301跳转教程仅适用网站首页为php后缀的dedecms网站,如果首页生成为静态不行。因为浏览时不经过php文件(经测试,没有任何问题,本站用的就是这种方法)。
第一步:打开网站根目录的index.php文件(记得备份),拷贝下面代码,覆盖原来内容:
<?php /** * @version $Id: index.php 1 9:23 2010-11-11 tianya $ * @package DedeCMS.Site * @copyright Copyright (c) 2007 - 2010, DesDev, Inc. * @license http://help.dedecms.com/usersguide/license.html * @link http://www.dedecms.com */ //主域名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(); } //自动生成HTML版 if(isset($_GET['upcache']) || !file_exists('index.html')) { 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']); $row['showmod'] = isset($row['showmod'])? $row['showmod'] : 0; if ($row['showmod'] == 1) { $pv->SaveToHtml(dirname(__FILE__).'/index.html'); include(dirname(__FILE__).'/index.html'); exit(); } else { $pv->Display(); exit(); } } else { header('HTTP/1.1 301 Moved Permanently'); header('Location:index.html'); } ?>第二步:上传到根目录。
第三步:进入后台-->生成-->更新主页html-->勾选“动态浏览”,或者直接删除根目录的index.html文件
第四步:进入主机管理,找到“默认首页设置”,把index.php提到最前面。如下图:
OK,大功告成,在浏览器输入不带www的域名,看看会不会自动跳转到带www的域名。