首先声明下,本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的域名。
