DEDECMS全站自动伪静态方法
dedecms全站伪静态教程分为五部分,包括“Apache设置、.htaccess文件设置、首页伪静态、列表页伪静态、文章页伪静态”。
用4.0测试OK,5.X没测。
一、Apache文件设置
这是重头戏,以前用本地测试时因 httpd.conf 文件没设置好,搞得焦头烂额。
1、如果是虚拟主机,一般 apache 的 LoadModule rewrite_module modules/mod_rewrite.so 是开启的,请咨询你的主机提供商以确认是否支持伪静态。
2、如果是自己的服务器或本地机器,请按以下设置:
关闭 apache 服务。
打开 httpd.conf 文件(一般放在apache安装目录的conf目录下)把 #LoadModule rewrite_module modules/mod_rewrite.so 前的 # 号去掉,代表开启 rewrite 规则。
搜索 “AllowOverride None”(不包括引号,下同) ,有多个,全部替换为 “AllowOverride All”。
开启 apache 服务。
二、.htaccess文件设置
在网站根目录建一 .htaccess 文件,内容为:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*)index/.html$ $1/index.php
RewriteRule ^(.*)list-([0-9]+)/.html$ $1/plus/list.php?tid=$2
RewriteRule ^(.*)list-([0-9]+)-([0-9]+)/.html$ $1/plus/list.php?typeid=$2&PageNo=$3
RewriteRule ^(.*)view-([0-9]+).html$ $1/plus/view.php?aid=$2
RewriteRule ^(.*)view-([0-9]+)-([0-9]+).html$ $1/plus/view.php?aid=$2&pageno=$3
三、dedecms首页伪静态
不要更新首页html就行。如果已更新,请删除index.html即可。
四、dedecms列表页伪静态
1、打开 /include/inc_arclist_view.php 找到
//---------------------------------
//获取动态的分页列表
//---------------------------------
把它下面的函数改成以下的:
function GetPageListDM($list_len,$listitem="index,end,pre,next,pageno")
{
$prepage="";
$nextpage="";
$prepagenum=$this->PageNo-1;
$nextpagenum=$this->PageNo+1;
if($list_len==""||ereg("[^0-9]",$list_len)) $list_len=3;
$totalpage=ceil($this->TotalResult/$this->PageSize);
if($totalpage<=1 && $this->TotalResult>0) return "共1页/".$this->TotalResult."条记录";
if($this->TotalResult==0) return "共0页".$this->TotalResult."条记录";
$maininfo="共{$totalpage}页/".$this->TotalResult."条记录";
$purl=$this->GetCurUrl();
$geturl="typeid=".$this->TypeID."&TotalResult=".$this->TotalResult."&";
$gettypeid=$this->TypeID."-";
//$hidenform="";
//$hidenform .="";
$purl .="?".$geturl;
//获得上一页和下一页的链接
if($this->PageNo !=1){
$prepage.="上一页";
$indexpage="首页";
}
else{
$indexpage="首页";
}
if($this->PageNo!=$totalpage && $totalpage>1){
$nextpage.="下一页";
$endpage="末页";
}
else{
$endpage="末页";
}
//获得数字链接
$listdd="";
$total_list=$list_len * 2 + 1;
if($this->PageNo >=$total_list) {
$j=$this->PageNo-$list_len;
$total_list=$this->PageNo+$list_len;
if($total_list>$totalpage) $total_list=$totalpage;
}else{
$j=1;
if($total_list>$totalpage) $total_list=$totalpage;
}
for($j;$j<=$total_list;$j++){
$listdd.="".$j."";
}
$plist .=$maininfo.$indexpage.$prepage.$listdd.$nextpage.$endpage;
return $plist;
}
2、打开 /include/inc_channel_unit_functions.php 查找
$reurl=$GLOBALS["cfg_plus_dir"]."/list.php?tid=".$typeid;
改成
$reurl="/list-".$typeid.".html"; //列表页伪静态
五、dedecms文章页伪静态
1、打开 /include/inc_archives_view.php ,有两处修改的地方,
1.1 找到:
//------------------------
//获得动态页面分页列表
//------------------------
function GetPagebreakDM($totalPage,$nowPage,$aid)
{
if($totalPage==1){ return ""; }
$PageList="共".$totalPage."页: ";
$nPage=$nowPage-1;
$lPage=$nowPage+1;
if($nowPage==1) $PageList.="上一页 ";
else{
if($nPage==1) $PageList.="上一页 ";
else $PageList.="上一页 ";
}
for($i=1;$i<=$totalPage;$i++)
{
if($i==1){
if($nowPage!=1) $PageList.="[1] ";
else $PageList.="1 ";
}else{
$n=$i;
if($nowPage!=$i) $PageList.="[".$n."] ";
else $PageList.="$n ";
}
}
if($lPage <=$totalPage) $PageList.="下一页 ";
else $PageList.="下一页 ";
return $PageList;
}
修改为:
//获得伪静态页面分页列表
function GetPagebreakDM($totalPage,$nowPage,$aid)
{
if($totalPage==1){ return ""; }
$PageList="共".$totalPage."页: ";
$nPage=$nowPage-1;
$lPage=$nowPage+1;
if($nowPage==1) $PageList.="上一页 ";
else{
if($nPage==1) $PageList.="上一页 ";
else $PageList.="上一页 ";
}
for($i=1;$i<=$totalPage;$i++)
{
if($i==1){
if($nowPage!=1) $PageList.="[1] ";
else $PageList.="1 ";
}else{
$n=$i;
if($nowPage!=$i) $PageList.="[".$n."] ";
else $PageList.="$n ";
}
}
if($lPage <=$totalPage) $PageList.="下一页 ";
else $PageList.="下一页 ";
return $PageList;
}
1.2 找到:
//-------------------------
//获得动态页面小标题
//-------------------------
function GetPageTitlesDM($styleName,$pageNo)
{
if($this->TotalPage==1){ return ""; }
if(count($this->SplitTitles)==0){ return ""; }
$i=1;
$aid=$this->ArcID;
if($styleName=='link')
{
$revalue="";
foreach($this->SplitTitles as $k=>$v){
if($i==1) $revalue .="$v ";
else{
if($pageNo==$i) $revalue .=" $v ";
else $revalue .="$v ";
}
$i++;
}
}else
{
$revalue="
foreach($this->SplitTitles as $k=>$v){
if($i==1) $revalue .="
else{
if($pageNo==$i) $revalue .="";
else $revalue .="
}
$i++;
}
$revalue .="";
}
return $revalue;
}
修改为:
//获取伪静态页面小标题
function GetPageTitlesDM($styleName,$pageNo)
{
if($this->TotalPage==1){ return ""; }
if(count($this->SplitTitles)==0){ return ""; }
$i=1;
$aid=$this->ArcID;
if($styleName=='link')
{
$revalue="";
foreach($this->SplitTitles as $k=>$v){
if($i==1) $revalue .="$v ";
else{
if($pageNo==$i) $revalue .=" $v ";
else $revalue .="$v ";
}
$i++;
}
}else
{
$revalue="
foreach($this->SplitTitles as $k=>$v){
if($i==1) $revalue .="
else{
if($pageNo==$i) $revalue .="";
else $revalue .="
}
$i++;
}
$revalue .="";
}
return $revalue;
}
2、打开 /include/inc_channel_unit_functions.php 查找
return $GLOBALS['cfg_plus_dir']."/view.php?aid=$aid";
改成
return "/view-$aid.html";//文章页伪静态
六、完工。把栏目和文章都改为动态,刷新,dedecms全站伪静态成功。
把栏目和文章批量修改为动态的SQL语句:
update dede_arctype set isdefault=-1;
update dede_archives set ismake=-1;
更新:
DEDECMS搜索的伪静态在 .htaccess 文件里加入如下两句即可:
RewriteRule ^(.*)/search/([^/]*)$ $1/plus/search/.php/?keyword=$2
RewriteRule ^(.*)/search/([^/]*)/(/d)$ $1/plus/search/.php/?keyword=$2&PageNo=$3
时间:(2024-02-06 14:23:18)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!