您好,欢迎来到建站之家源码网建站之家!只做精品网站源码
  • 首 页
  • 当前位置:首页 > 建站教程 > 织梦建站教程 >
    织梦全站自动伪静态方法
    时间:2017-10-15 14:30 来源:未知 作者:admin 浏览:收藏 打印

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

    DEDECMS全站自动伪静态方法

    一、Apache文件设置

    这是DedeCMS教程重头戏,以前用本地测试时因 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 = "<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' onchange='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' onchange='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全站伪静态成功。

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

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

    标签:建站之家

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请及时联系QQ:1395550247,我们尽快处理。

    DEDECMS织梦网站模板安装教程DEDECMS织梦网站模板安装教程
    织梦建站教程|企业网站建设视频教程【完整全套】织梦建站教程|企业网站建设视
    DEDE织梦CMS建站零基础到高级仿站视频教程(全套DEDE织梦CMS建站零基础到高级仿
    支持建站之家广告栏目
      客服:我们竭诚为您服务!

      客服:我们竭诚为您服务!