現在好多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>
好了,至此就搞定了。