织梦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>\r\n";
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>\r\n";
042
042$indexpage="<li><a href='".$purl."-1.html'>首页</a></li>\r\n";
043
043}
044
044 else
045
045{
046
046$indexpage="<li><a>首页</a></li>\r\n";
047
047}
048
048 if($this->PageNo!=$totalpage&&$totalpage>1)
049
049{
050
050$nextpage.="<li><a href='".$purl."-$nextpagenum.html'>下一页</a></li>\r\n";
051
051$endpage="<li><a href='".$purl."-$totalpage.html'>末页</a></li>\r\n";
052
052}
053
053 else
054
054{
055
055$endpage="<li><a>末页</a></li>\r\n";
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>\r\n";
083
083}
084
084 else
085
085{
086
086$listdd.="<li><a href='".$purl."-$j.html'>".$j."</a></li>\r\n";
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>
好了,至此就搞定了。