织梦CMS实现伪静态URL的方法

我们知道DEDECMS可以在后台直接设置成静态HTML,但是如果你是一个数据量非常大的网站,更改模板后,重新生成HTML,试试想10W数据,重新生成一遍的难度。所在这里我想到了一个用urlwrite实现的伪静态URL的方法。

我们知道织梦模板可以在后台直接设置成静态HTML,但是如果你是一个数据量非常大的网站,更改模板后,重新生成HTML,试试想10W数据,重新生成一遍的难度。所在这里我想到了一个用urlwrite实现的伪静态URL的方法。

提示:用urlwrite实现的伪静态,服务器支持urlwrite。

修改方法

编辑文件
include/inc_channel_unit_functi*****.php
第107行改为
    if($rank!=0||$ismake==-1||$typeid==0||$money>0){ //动态文章
    //return $GLOBALS['cfg_plus_dir']."/view.php?aid=$aid";
 
   //keminar 修改
    $articleDir = MfTypedir($artdir);
    if($artdir=="") $articleDir = $GLOBALS['cfg_cmspath'].$GLOBALS['cfg_arcdir'];
    
    return $articleDir."/".GetPinyin($title)."_aid_".$aid.".html";
  
  }

第52行改为
  if($rank!=0||$ismake==-1||$typeid==0||$money>0) //动态文章
  {
    if($GLOBALS['cfg_multi_site']=='Y')
    {
      $siteurl = $GLOBALS['cfg_basehost'];
    }
 
    //return $siteurl.$GLOBALS['cfg_plus_dir']."/view.php?aid=$aid";
 
    //keminar 修改
    $articleDir = MfTypedir($artdir);
    if($artdir=="") $articleDir = $GLOBALS['cfg_cmspath'].$GLOBALS['cfg_arcdir'];
 
    return $siteurl.$articleDir."/".GetPinyin($title)."_aid_".$aid.".html";
  }

第146行改为

  if($isdefault==-1)
  {
    //$reurl = $GLOBALS["cfg_plus_dir"]."/list.php?tid=".$typeid;
    //keminar 修改
    $reurl = $GLOBALS["cfg_cmspath"]."/".$typedir."_tid_".$typeid.".html";
  }else if($ispart>0)

修改文件
include/inc_arclist_view.php
第810行改为

    $purl = $this->GetCurUrl();
    //keminar 修改
    $t = strpos($purl,'_tid_');
    $purl = substr($purl,0,$t);
    $geturl = "tid_".$this->TypeID."_";
    //$hidenform = "<input type='hidden' name='typeid' value='".$this->TypeID."'>\r\n";
    //$hidenform .= "<input type='hidden' name='totalresult' value='".$this->totalresult."'>\r\n";
 
    $purl .= "_".$geturl;
 
    //获得上一页和下一页的链接
    if($this->pageno != 1){
      $prepage.="<a href='".$purl."pageno_".$prepagenum.".html'>上一页</a>\r\n";
      $indexpage="<a href='".$purl."pageno_1.html'>首页</a>\r\n";
    }
    else{
      $indexpage="<a href='#'>首页</a>\r\n";
    }
 
    if($this->pageno!=$totalpage && $totalpage>1){
      $nextpage.="<a href='".$purl."pageno_".$nextpagenum.".html'>下一页</a>\r\n";
      $endpage="<a href='".$purl."pageno_".$totalpage.".html'>末页</a>\r\n";
    }
    else{
      $endpage="末页\r\n";
    }
    //获得数字链接
    $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++){
   if($j==$this->pageno) $listdd.= "<strong>$j</strong>\r\n";
    else $listdd.="<a href='".$purl."pageno_".$j.".html'>".$j."</a>\n";
    }
    $plist = "";
   //$plist .= "<form name='pagelist' action='".$this->GetCurUrl()."'>$hidenform";
    $plist .= $maininfo.$indexpage.$prepage.$listdd.$nextpage.$endpage;
    if($totalpage>$total_list){
      $plist.="<input type='text' name='pageno' id='pageno' value='".$this->pageno."'>\r\n";
     $plist.="<input type='button' id='button' name='plistgo' value='GO' onclick='plistgo();'>\r\n";
    }
   //$plist .= "</form>\r\n";
    $plist .= "<script type='text/javascript'>\r\n
    function plistgo(){
      var pageno = document.getElementById(\"pageno\").value;
      window.location.href='".$purl."pageno_'+pageno+'.html';
    };</script>";
   return $plist;

修改模板
templets/jinsuo/article_image.htm
第10行添加

  var url = location.href;
  var t = url.indexOf('_aid_');
  var aurl = url.slice(0,t);

第42行修改

     if(npage==2){
       if(namehand!='') location.href = namehand+".html";
      else location.href = aurl+"_aid_{dede:field name='id'/}"+".html";
     }else if(displaytype=='st' && namehand!=''){
       location.href = namehand+"_"+(npage-1)+".html";
     }else{
       location.href = aurl+"_aid_{dede:field name='id'/}_pageno_"+(npage-1)+".html";
     }
    }
  }
 
  //下一张
  function dPlayNext(){
    if(npage==totalpage){ alert("没有了哦"); }
    else{
      if(displaytype=='st' && namehand!='') location.href = namehand+"_"+(npage+1)+".html";
      else location.href = aurl+"_aid_{dede:field name='id'/}_pageno_"+(npage+1)+".html";    
 

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

dedecms织梦默认的TAG标签不是很灵活。有时候我们的标签需要进行一个分类,能不能像{dede:arclist}标签的自定义属性(如:flag=c,h),这样全站调用的时候更灵活。 全站调用TAG标签方法一般是: {dede:tag row='100' sort='new' getall='1'}a target="_blank
未审核文档的TAG会显示在TAG列表页面, 固然点击进入TAG时, 相关的未审核文章不会显示出来, 这样对用户体验是很不好的. DEDECMS暂时没有提供这个功能,所以要解决这个问题, 让DEDECMS不显示未审核文档的TAG, 就要修改TAG的显示库文件 tag.lib.php。 方法一 打
我们都知道DEDECMS生成的文件夹是按天生成的,只要传了图片就会自动建立个年月日的文件,centos系统下,都是随便排序的,很难找到对应文件夹,如果要按顺序排列,要怎么操作呢? 一、文件管理器: 修改 /dede/templets/file_manage_main.html $dh = dir($inp
我们在用到织梦dedecms软件模型的时候,手动指定地址通常只能是引用其他网址或者链接,我们要实现直接选取站内的文件,这个要怎么操作呢?下面小编一步步为您解答,最终效果如下图所示: 实现教程 1、打开 /dede/templets/soft_add.htm 找到 input type=text
我们有时候需要对织梦文档的点击量进行批量维护,比如采集来的文章,点击量都为0,需要批量修改,可以用到如下方法1。 1、在数据库里运行下面的代码就可以了,文章的点击量变得随机从500到1000 UPDATE dede_archives SET click=FLOOR(500 + (RAND() * 1000))
用过dedecms的朋友都知道,织梦cms后台系统基本参数里是无法直接上传图片的,我们更换logo图只能到ftp里替换,非常的不方便,我们如果想直接在系统基本参数里上传,要怎么处理呢?在这里需要对代码进行修改,具体流程如下: 实现方法,打开/dede/templets/sy