帝国CMSçš„Tags URL实现TagID伪静态的方法 不指定



更多



帝国CMS默认的tag伪静态方法是tagname方式的,那么怎么实现以tagid来实现tag的伪静态呢?

第一步:修改 e\class\connect.php文件

搜索“function eReturnRewriteTagsUrl($tagid,$tagname,$ecms=0){”找到函数eReturnRewriteTagsUrl,将此函数删除或注释掉,换成下面的代码:

PHP代码
        
  1. //返回TAGS列表伪静态  
  2.     
  3. function eReturnRewriteTagsUrl($tagid,$tagname,$ecms=0){  
  4.     
  5.     global $public_r,$empire,$dbtbpre;  
  6.     
  7.     if(!$tagid){  
  8.     
  9.         $tagname=RepPostVar($tagname);  
  10.     
  11.         if(!$tagname)  
  12.     
  13.         {  
  14.     
  15.             $r['pageurl']=$public_r['newsurl'];  
  16.     
  17.             $r['rewrite']=0;  
  18.     
  19.             return $r;  
  20.     
  21.         }  
  22.     
  23.         $tagr=$empire->fetch1("select tagid,num from {$dbtbpre}enewstags where tagname='$tagname' limit 1");  
  24.     
  25.         if(!$tagr['tagid'])  
  26.     
  27.         {  
  28.     
  29.             $r['pageurl']=$public_r['newsurl'];  
  30.     
  31.             $r['rewrite']=0;  
  32.     
  33.             return $r;  
  34.     
  35.         }  
  36.     
  37.         $tagid=$tagr['tagid'];  
  38.     
  39.     }  
  40.     
  41.     if(empty($public_r['rewritetags']))  
  42.     
  43.     {  
  44.     
  45.         $r['pageurl']=$public_r['newsurl']."/tags/".$tagid."/";  
  46.     
  47.         $r['rewrite']=0;  
  48.     
  49.     }  
  50.     
  51.     else  
  52.     
  53.     {  
  54.     
  55.         if($ecms==1)  
  56.     
  57.         {  
  58.     
  59.             $r['pageurl']=$public_r['newsurl'].str_replace(array('[!--tagname--]','[!--page--]'),array($tagid,0),$public_r['rewritetags']);  
  60.     
  61.         }  
  62.     
  63.         else  
  64.     
  65.         {  
  66.     
  67.             $r['pageurl']=$public_r['newsurl'].str_replace('[!--tagname--]',$tagid,$public_r['rewritetags']);  
  68.     
  69.         }  
  70.     
  71.         $r['rewrite']=1;  
  72.     
  73.     }  
  74.     
  75.     return $r;  
  76.     
  77. }  

第二步:修改e\tags\index.php文件

这里主要是修改分页函数。找到如下所示代码,按照以下代码将原来的部分代码注释掉。

XML/HTML代码
        
  1. /*  
  2.     
  3. if($tagr['tagid']&&empty($add)&&$search=='&tagname='.$tagname.'&line='.$public_r['tagslistnum'].'&tempid='.$public_r['tagstempid'])  
  4.     
  5. {  
  6.     
  7. */  
  8.     
  9.     //伪静态  
  10.     
  11.     $pagefunr=eReturnRewriteTagsUrl($tagid,$tagname,0);  
  12.     
  13.     $pagefunr['repagenum']=0;  
  14.     
  15.     //分页  
  16.     
  17.     if($pagefunr['rewrite']==1)  
  18.     
  19.     {  
  20.     
  21.         $listpage=InfoUsePage($num,$line,$page_line,$start,$page,$search,$pagefunr);  
  22.     
  23.     }  
  24.     
  25.     else  
  26.     
  27.     {  
  28.     
  29.         $listpage=page1($num,$line,$page_line,$start,$page,$search);  
  30.     
  31.     }  
  32.     
  33.   
  34.     
  35. /*  
  36.     
  37. }  
  38.     
  39. else  
  40.     
  41. {  
  42.     
  43.     $listpage=page1($num,$line,$page_line,$start,$page,$search);//分页  
  44.     
  45. }  
  46.     
  47. */  

第三步:后台设置tag伪静态

按照默认,设置成:/tags/[!--tagname--]/[!--page--].html 即可。

第四步:服务器伪静态规则

1、Apache WebServer的伪静态规则:

XML/HTML代码
        
  1. RewriteRule ^/tags/(.*)/(.*).html$  e/tags/index.php?tagid=$1&page=$2  

2、IIS WebServer的伪静态规则:

XML/HTML代码
        
  1. RewriteRule ^/tags/([0-9]+)/$ /e/tags/index.php?tagid=$1  
  2.     
  3. RewriteRule ^/tags/([0-9]+)/([0-9]+)\.html$ /e/tags/index.php?tagid=$1&page=$2 [L]  
相关日志
帝国CMS调用自定义列表名称的方法
帝国CMS获取当前自定义列表的listid
帝国CMS自定义列表调用当天发布的信息
帝国CMS自定义列表的排序newstime、onclick、plnum
帝国CMS自定义列表多表联合查询的方法
帝国CMS用自定义列表来制作带分页的专题列表页
帝国CMS提示Fatal error:Allowed memory size of的解决方法
帝国CMS内容关键字替换功能如何避免将Alt和title中的关键词替换成链接
帝国cms灵动标签中调用栏目名称和别名的方法
帝国CMS的Tag页面使用like调用相关tags的方法

最后编辑: 郝聪 编辑于2020/06/28 11:24
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]