dedecms全站伪静态教程分为五部分,包括“Apache设置、.htaccess文件设置、首页伪静态、列表页伪静态、文章页伪静态”。

一、Apache文件设置

这是dedecms教程重头戏,以前用本地测试时因 httpd.conf 文件没设置好,搞得焦头烂额。

1、如果是虚拟主机,一般 apache 的 LoadModule rewrite_module modules/mod_rewrite.so 是开启的,请咨询你的主机提供商以确认是否支持伪静态http://www.crong.cn/。

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 = "<input type='hidden' name='typeid' value='".$this->TypeID."'>";
//$hidenform .= "<input type='hidden' name='TotalResult' value='".$this->TotalResult."'>";

$purl .= "?".$geturl;

//获得上一页和下一页的链接
if($this->PageNo != 1){
$prepage.="<a href='list-".$gettypeid."$prepagenum.html'>上一页</a>";
$indexpage="<a href='list-".$gettypeid."1.html'>首页</a>";
}
else{
$indexpage="首页";
}

if($this->PageNo!=$totalpage && $totalpage>1){
$nextpage.="<a href='list-".$gettypeid."$nextpagenum.html'>下一页</a>";
$endpage="<a href='list-".$gettypeid."$totalpage.html'>末页</a>";
}
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.="<a href='list-".$gettypeid."$j.html'>".$j."</a>";
}
$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.="<a href='view.php?aid=$aid'>上一页</a> ";
else $PageList.="<a href='view.php?aid=$aid&pageno=$nPage'>上一页</a> ";
}
for($i=1;$i<=$totalPage;$i++)
{
if($i==1){
if($nowPage!=1) $PageList.="<a href='view.php?aid=$aid'>[1]</a> ";
else $PageList.="1 ";
}else{
$n = $i;
if($nowPage!=$i) $PageList.="<a href='view.php?aid=$aid&pageno=$i'>[".$n."]</a> ";
else $PageList.="$n ";
}
}
if($lPage <= $totalPage) $PageList.="<a href='view.php?aid=$aid&pageno=$lPage'>下一页</a> ";
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.="<a href='view-$aid'>上一页</a> ";
else $PageList.="<a href='view-$aid-$nPage.html'>上一页</a> ";
}
for($i=1;$i<=$totalPage;$i++)
{
if($i==1){
if($nowPage!=1) $PageList.="<a href='view-$aid'>[1]</a> ";
else $PageList.="1 ";
}else{
$n = $i;
if($nowPage!=$i) $PageList.="<a href='view-$aid-$i.html'>[".$n."]</a> ";
else $PageList.="$n ";
}
}
if($lPage <= $totalPage) $PageList.="<a href='view-$aid-$lPage.html'>下一页</a> ";
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 .= "<a href='view.php?aid=$aid&pageno=$i'>$v</a> ";
else{
if($pageNo==$i) $revalue .= " $v ";
else $revalue .= "<a href='view.php?aid=$aid&pageno=$i'>$v</a> ";
}
$i++;
}
}else
{
$revalue = "<select id='dedepagetitles' οnchange='location.href=this.options[this.selectedIndex].value;'>";
foreach($this->SplitTitles as $k=>$v){
if($i==1) $revalue .= "<option value='".$this->Fields['phpurl']."/view.php?aid=$aid&pageno=$i'& gt;{$i}、{$v}</option>";
else{
if($pageNo==$i) $revalue .= "<option value='".$this->Fields['phpurl']."/view.php?aid=$aid&pageno=$i' selected>{$i}、{$v}</option>";
else $revalue .= "<option value='".$this->Fields['phpurl']."/view.php?aid=$aid&pageno=$i'& gt;{$i}、{$v}</option>";
}
$i++;
}
$revalue .= "</select>";
}
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 .= "<a href='view-$aid-$i.html'>$v</a> ";
else{
if($pageNo==$i) $revalue .= " $v ";
else $revalue .= "<a href='view-$aid-$i.html'>$v</a> ";
}
$i++;
}
}else
{
$revalue = "<select id='dedepagetitles' οnchange='location.href=this.options[this.selectedIndex].value;'>";
foreach($this->SplitTitles as $k=>$v){
if($i==1) $revalue .= "<option value='".$this->Fields['phpurl']."/view-$aid-$i.html'>{$i}、{$v}& lt;/option>";
else{
if($pageNo==$i) $revalue .= "<option value='".$this->Fields['phpurl']."/view-$aid-$i.html' selected>{$i}、{$v}</option>";
else $revalue .= "<option value='".$this->Fields['phpurl']."/view-$aid-$i'>{$i}、{$v}< /option>";
}
$i++;
}
$revalue .= "</select>";
}
return $revalue;
}

2、打开 /include/inc_channel_unit_functions.php 查找

return $GLOBALS['cfg_plus_dir']."/view.php?aid=$aid";

改成

//文章页伪静态
return "/view-$aid.html";

六、DEDECMS搜索的伪静态

在 .htaccess 文件里加入如下两句即可:

RewriteRule ^(.*)/search/([^/]*)$ $1/plus/search/.php/?keyword=$2
RewriteRule ^(.*)/search/([^/]*)/(/d)$ $1/plus/search/.php/?keyword=$2&PageNo=$3

七、完工。把栏目和文章都改为动态,刷新,dedecms全站伪静态成功( 参考http://www.r5a.cn/)。

把栏目和文章批量修改为动态的SQL语句:

update dede_arctype set isdefault=-1;
update dede_archives set ismake=-1;

DEDECMS织梦系统全站自动伪静态处理的方法及技巧相关推荐

  1. dedecms织梦系统后台验证码图片不显示的解决方法

    dedecms织梦系统后台验证码图片不显示的解决方法 参考文章: (1)dedecms织梦系统后台验证码图片不显示的解决方法 (2)https://www.cnblogs.com/afish/p/40 ...

  2. php熊掌号怎么设置json-ld,dedecms织梦系统怎么对接百度熊掌号并添加JSON_LD数据

    dedecms织梦系统怎么对接百度熊掌号并添加JSON_LD数据? 百度推出的百度熊掌号非常的不错,我的dedecms织梦系统早早就对接好了,它能对你的原创文章进行原创保护,并评出熊掌号搜索指数,熊掌 ...

  3. php熊掌号怎么设置json-ld,dedecms织梦系统对接百度熊掌号并添加JSON_LD数据

    百度近期推出的百度熊掌号非常的不错,我的dedecms织梦系统早早就对接好了,它能对你的原创文章进行原创保护,并评出熊掌号搜索指数,熊掌号搜索指数是对你文章的内容质量,用户喜爱.原创能力.活跃表现.领 ...

  4. dedecms织梦系统深入函数篇

    织梦系统深入函数篇--织梦常用函数详解 今天这篇教程,准确的说应该算是一篇独立的教程系列.但是作为技术员,在建站过程中,函数这个东西是必不可少的.所以,我将它合并到本专题,作为其中的一节课程.希望大家 ...

  5. 织梦网站如何上传服务器还原,网站转移教程:织梦系统数据库备份和还原的方法步骤...

    网站在运行的过程中,难免会遇到各种问题,比如:网站被攻击导致数据丢失,网站需要更换空间或服务器等等.所以,如何完完整整的把网站数据进行备份和还原,并转移到新的空间上,已是作为一个站长必须掌握的技能之一 ...

  6. DedeCMS织梦系统服务器端安装

    背景:网站上传到网络上后,经常需要更新一些内容,如果经常重新上传网站会很麻烦,而且对SEO优化非常不好,所以我们就要用到网站管理工具 1.下载安装包,登录织梦官网(www.dedecms.com)或百 ...

  7. dedecms织梦系统在线报名表单插件安装及配置详细教程

    网上找了很多,都不是太满意,功能不全不全不说,还没有详细的安装配置教程,经过自己的折腾,成功了修改程序并配置成功,亲测,试用没有问题!所以,决定给大家出一个针对新手的详细教程. 废话不多,直接上干货. ...

  8. 织梦编辑器加HTML视频显示很小,织梦去掉编辑器自动加div的方法即大小字情况...

    织梦dedecms每次新上传图片插入编辑器会自动加p标签,这个会导致网页错位等问题.以下是修改方法. 第一种解决方法: 修改网站根目录\include\FCKeditor\editor\dialog\ ...

  9. dedecms 织梦后台系统配置参数空白的解决方法

    相信大家在本地上传到云服务器端都会遇到这样的问题,在还原数据中出现系统配置参数空白.其实这都是最基本的一个小错误,很容易解决. 步骤一: 在云服务器端安装后台的时候,到达填写密码那一步,拉到最下面,先 ...

最新文章

  1. python的类属性和方法_Python中类属性、实例属性和实例方法的区别
  2. 闲得蛋疼在linux下装鸟个svn
  3. python飞机大战的实训心得体会-python之基础总结(飞机大战)
  4. java软件开发ea介绍_开发说明 — Eacloud 1.0 documentation
  5. 顺丰物流单号查询效果(可输入多个文本框)
  6. 2020-02-09 改udev硬件配置策略,改ETHTOOL_OPTS 或改 `/etc/NetworkManager/dispatcher.d/20-ethtool`...
  7. Makefile--基本规则(零)
  8. SharePoint2010企业开发最佳实践(八)---- SPWeb 对象
  9. mysql8019zip安装_Eclipse+java+mysql8019实现数据库连接
  10. 算法设计与分析期末考试
  11. EasyChair提交会议论文的方法简介
  12. C++ advanced(4)make function and SFINAE
  13. java高级架构师工资多少啊,附源代码
  14. java命名规范(驼峰命名法)
  15. 记一次PyQT5 core dump调试过程
  16. C++练习:编写程序实现歌唱大赛选手成绩计算功能
  17. 全球与中国汽车点火线圈市场深度研究分析报告
  18. MBA案例分析(沟通)
  19. 有效提高网站打开速度的途径,给你的网站提速
  20. NOIP2017时间复杂度(提高D1T2)

热门文章

  1. 【目标检测】yolo系列yolo x学习笔记(2021年旷视)
  2. 解决会声会影X5出现错误38,文件已损坏或被修改
  3. 百度地图中绘制多个点例子
  4. Error on execution -version `Qt_5' not found required by
  5. 邻居子系统之邻居项状态更新
  6. Cramer-Shoup 密码系统 安全证明 内容小结
  7. FLUENT导入CHEMKIN机理的单位问题【转载】
  8. 基于LSTM递归神经网络的多特征电能负荷预测(Python代码实现)
  9. (STITP)jotm-btp的深入分析
  10. 论文笔记: 基于 BMF 和 GreConD 的推荐