zoukankan      html  css  js  c++  java
  • 织梦cms系统TAG标签和分页伪静态设置教程

      现在好多CMS系统都有TAGS标签这项功能,知名的DEDECMS也有,但是它的标签功能很差,不利于seo优化,同时也有很多问题,比如:当前页不存在上一页时,链接为“-1”的问题,还有出现“系统无此标签,可能已经移除”的问题。
      今天小编就教大家把标签伪静态(部分资料来源于网络),同时也修复了一些上述提到的BUG。
      1.修改前台显示链接
      我们这里达到的效果就是使原来/tags.php?keywors更改为/tags/keywords.html。
      这里主要修改下调用的标签,在/include/taglib/tag.lib.php中,在87行找到
      1
      1$row['link']=$cfg_cmsurl."/tags?".urlencode($row['keyword']);
      将其改为:https://www.rdredcross.org.cn
      1
      1$row['link']=$cfg_cmsurl."/tags/".urlencode($row['keyword']).".html";
      2.修改分页代码部分
      我们需要修改include/arc.taglist.class.php,找到分页函数,将其替换为:
      001
      001/**
      002
      002*获取动态的分页列表
      003
      003*
      004
      004* access public
      005
      005* param int$list_len列表宽度
      006
      006* param string$listitem列表样式
      007
      007* return string
      008
      008*/
      009
      009 function GetPageListDM($list_len,$listitem="info,index,end,pre,next,pageno")
      010
      010{
      011
      011$prepage="";
      012
      012$nextpage="";
      013
      013$prepagenum=$this->PageNo-1;
      014
      014$nextpagenum=$this->PageNo+1;
      015
      015 if($list_len==""||preg_match("/[^0-9]/",$list_len))
      016
      016{
      017
      017$list_len=3;
      018
      018}
      019
      019$totalpage=$this->TotalPage;
      020
      020 if($totalpage<=1&&$this->TotalResult>0)
      021
      021{
      022
      022 return"<span class="pageinfo">共1页/".$this->TotalResult."条</span>";
      023
      023}
      024
      024 if($this->TotalResult==0)
      025
      025{
      026
      026 return"<span class="pageinfo">共0页/".$this->TotalResult."条</span>";
      027
      027}
      028
      028$maininfo="<span class="pageinfo">共{$totalpage}页/".$this->TotalResult."条</span> ";
      029
      029$purl=$this->GetCurUrl();
      030
      030$basename=basename($purl);
      031
      031$tmpname=explode('.',$basename);
      032
      032
      033
      033$purl=str_replace($basename,'',$purl).urlencode($this->Tag);
      034
      034//var_dump($purl);exit;
      035
      035//$purl.="?/".urlencode($this->Tag);
      036
      036
      037
      037//获得上一页和下一页的链接
      038
      038//if($this->PageNo!=1)这是修正上一页为负数的问题
      039
      039 if($this->PageNo!=1&&$this->PageNo!="")
      040
      040{
      041
      041$prepage.="<li><a href='".$purl."-$prepagenum'.html>上一页</a></li> ";
      042
      042$indexpage="<li><a href='".$purl."-1.html'>首页</a></li> ";
      043
      043}
      044
      044 else
      045
      045{
      046
      046$indexpage="<li><a>首页</a></li> ";
      047
      047}
      048
      048 if($this->PageNo!=$totalpage&&$totalpage>1)
      049
      049{
      050
      050$nextpage.="<li><a href='".$purl."-$nextpagenum.html'>下一页</a></li> ";
      051
      051$endpage="<li><a href='".$purl."-$totalpage.html'>末页</a></li> ";
      052
      052}
      053
      053 else
      054
      054{
      055
      055$endpage="<li><a>末页</a></li> ";
      056
      056}
      057
      057
      058
      058//获得数字链接
      059
      059$listdd="";
      060
      060$total_list=$list_len*2+1;
      061
      061 if($this->PageNo>=$total_list)
      062
      062{
      063
      063$j=$this->PageNo-$list_len;
      064
      064$total_list=$this->PageNo+$list_len;
      065
      065 if($total_list>$totalpage)
      066
      066{
      067
      067$total_list=$totalpage;
      068
      068}
      069
      069}
      070
      070 else
      071
      071{
      072
      072$j=1;
      073
      073 if($total_list>$totalpage)
      074
      074{
      075
      075$total_list=$totalpage;
      076
      076}
      077
      077}
      078
      078 for($j;$j<=$total_list;$j++)
      079
      079{
      080
      080 if($j==$this->PageNo)
      081
      081{
      082
      082$listdd.="<li class="thisclass"><a>$j</a></li> ";
      083
      083}
      084
      084 else
      085
      085{
      086
      086$listdd.="<li><a href='".$purl."-$j.html'>".$j."</a></li> ";
      087
      087}
      088
      088}
      089
      089$plist='';https://www.rdredcross.org.cn
      090
      090 if(preg_match('/info/i',$listitem))
      091
      091{
      092
      092$plist.=$maininfo.'';
      093
      093}
      094
      094 if(preg_match('/index/i',$listitem))
      095
      095{
      096
      096$plist.=$indexpage.'';
      097
      097}
      098
      098 if(preg_match('/pre/i',$listitem))
      099
      099{
      100
      100$plist.=$prepage.'';
      101
      101}
      102
      102 if(preg_match('/pageno/i',$listitem))
      103
      103{
      104
      104$plist.=$listdd.'';
      105
      105}
      106
      106 if(preg_match('/next/i',$listitem))
      107
      107{
      108
      108$plist.=$nextpage.'';
      109
      109}
      110
      110 if(preg_match('/end/i',$listitem))
      111
      111{
      112
      112$plist.=$endpage.'';
      113
      113}
      114
      114 return$plist;
      115
      115}
      116
      116 3.设置伪静态规则
      117
      117
      118
      118我们这里以iis7为例子,设置以下规则:
      119
      119
      120
      120 Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com]
      121
      121<?xml version="1.0"encoding="UTF-8"?>
      122
      122<configuration>
      123
      123<system.webServer>
      124
      124<rewrite>
      125
      125<rules>
      126
      126<rule name="weather1"stopProcessing="true">
      127
      127<match url="tags/([^-]+).html$"ignoreCase="true"/>
      128
      128<conditions logicalGrouping="MatchAll">
      129
      129<add input="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/>
      130
      130<add input="{REQUEST_FILENAME}"matchType="IsDirectory"negate="true"/>
      131
      131</conditions>
      132
      132<action type="Rewrite"url="/tags.php?/{R:1}"appendQueryString="false"/>
      133
      133</rule>
      134
      134<rule name="weather2"stopProcessing="true">
      135
      135<match url="tags/([^-]+)-([0-9]+).html$"ignoreCase="true"/>
      136
      136<conditions logicalGrouping="MatchAll">
      137
      137<add input="{REQUEST_FILENAME}"matchType="IsFile"negate="true"/>
      138
      138<add input="{REQUEST_FILENAME}"matchType="IsDirectory"negate="true"/>
      139
      139</conditions>
      140
      140<action type="Rewrite"url="/tags.php?/{R:1}/{R:2}"appendQueryString="false"/>
      141
      141</rule>
      142
      142</rules>
      143
      143</rewrite>
      144
      144</system.webServer>
      145
      145</configuration>
      好了,至此就搞定了。

  • 相关阅读:
    Python自动补全
    Ubuntu的Mysql指南
    Kubernetes deployed on multiple ubuntu nodes
    【iOS】更新 CocoaPods 后 Podfile 报错
    【iOS】Xcode 使用 CocoaPods 导入第三方库后没有提示
    【iOS】build diff: /../Podfile.lock: No such file or directory
    【iOS】Interface Builder 预览
    【iOS】this class is not key value coding-compliant for the key ...
    【iOS】XIB 调整视图大小
    【iOS】[[NSBundle mainBundle] loadNibNamed:nibTitle owner:self options:nil] 异常
  • 原文地址:https://www.cnblogs.com/zqw111/p/13066071.html
Copyright © 2011-2022 走看看