织梦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' ]); |
|
将其改为:
1 | 1 $row[ 'link' ] = $cfg_cmsurl. "/tags/" .urlencode($row[ 'keyword' ]). ".html" ; |
|
2.修改分页代码部分
我们需要修改include/arc.taglist.class.php,找到分页函数,将其替换为:
005 | 005 * @param int $list_len 列表宽度 |
006 | 006 * @param string $listitem 列表样式 |
009 | 009 function GetPageListDM($list_len,$listitem= "info,index,end,pre,next,pageno" ) |
013 | 013 $prepagenum = $this->PageNo - 1; |
014 | 014 $nextpagenum = $this->PageNo + 1; |
015 | 015 if ($list_len == "" || preg_match( "/[^0-9]/" , $list_len)) |
019 | 019 $totalpage = $this->TotalPage; |
020 | 020 if ($totalpage <= 1 && $this->TotalResult > 0) |
022 | 022 return "<span class=\"pageinfo\">共1页/" .$this->TotalResult. "条</span>" ; |
024 | 024 if ($this->TotalResult == 0) |
026 | 026 return "<span class=\"pageinfo\">共0页/" .$this->TotalResult. "条</span>" ; |
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 ); |
033 | 033 $purl = str_replace($ basename , '' , $purl).urlencode($this->Tag); |
034 | 034 //var_dump($purl); exit ; |
035 | 035 //$purl .= "?/" .urlencode($this->Tag); |
038 | 038 // if ($this->PageNo != 1) 这是修正上一页为负数的问题 |
039 | 039 if ($this->PageNo != 1 && $this->PageNo != "" ) |
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" ; |
046 | 046 $indexpage= "<li><a>首页</a></li>\r\n" ; |
048 | 048 if ($this->PageNo!=$totalpage && $totalpage>1) |
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" ; |
055 | 055 $endpage= "<li><a>末页</a></li>\r\n" ; |
060 | 060 $total_list = $list_len * 2 + 1; |
061 | 061 if ($this->PageNo >= $total_list) |
063 | 063 $j = $this->PageNo - $list_len; |
064 | 064 $total_list = $this->PageNo + $list_len; |
065 | 065 if ($total_list > $totalpage) |
067 | 067 $total_list = $totalpage; |
073 | 073 if ($total_list > $totalpage) |
075 | 075 $total_list = $totalpage; |
078 | 078 for ($j; $j<=$total_list; $j++) |
080 | 080 if ($j == $this->PageNo) |
082 | 082 $listdd.= "<li class=\"thisclass\"><a>$j</a></li>\r\n" ; |
086 | 086 $listdd.= "<li><a href='" .$purl. "-$j.html'>" .$j. "</a></li>\r\n" ; |
090 | 090 if (preg_match( '/info/i' , $listitem)) |
092 | 092 $plist .= $maininfo. ' ' ; |
094 | 094 if (preg_match( '/index/i' , $listitem)) |
096 | 096 $plist .= $indexpage. ' ' ; |
098 | 098 if (preg_match( '/pre/i' , $listitem)) |
100 | 100 $plist .= $prepage. ' ' ; |
102 | 102 if (preg_match( '/pageno/i' , $listitem)) |
104 | 104 $plist .= $listdd. ' ' ; |
106 | 106 if (preg_match( '/next/i' , $listitem)) |
108 | 108 $plist .= $nextpage. ' ' ; |
110 | 110 if (preg_match( '/end/i' , $listitem)) |
112 | 112 $plist .= $endpage. ' ' ; |
118 | 118 我们这里以iis7为例子,设置以下规则: |
120 | 120 Copy to ClipboardLiehuo.Net Codes引用的内容:[www.veryhuo.com] |
121 | 121 <?xml version= "1.0" encoding= "UTF-8" ?> |
123 | 123 <system.webServer> |
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" /> |
132 | 132 <action type = "Rewrite" url= "/tags.php?/{R:1}" appendQueryString= "false" /> |
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" /> |
140 | 140 <action type = "Rewrite" url= "/tags.php?/{R:1}/{R:2}" appendQueryString= "false" /> |
144 | 144 </system.webServer> |
|
好了,至此就搞定了。
https://www.qqzla.com/