dedecms标签(tags)页面伪静态设置
我们在创建文章的时候经常会设置一些tags,如果发表文章时关键词没添加的话tags也会自动成为文章的关键词,tags是一个不错的功能,通过关键词链接可以快速寻找到相关内容,但是标签页面的url经常会带有一大串的参数,像这样/tags.php?/%C5%DD%C4%AD%CB%DC%C1%CF/,如何将TAGS静态化这样更加利于SEO呢?
在includetaglibtag.lib.php中,在87行找到
1 | $row [ 'link' ] = $cfg_cmsurl . "/tags?" .urlencode( $row [ 'keyword' ]); |
改为:
1 | $row [ 'link' ] = $cfg_cmsurl . "/tags/" .urlencode( $row [ 'keyword' ]). ".html" ; |
修改分页代码
include/arc.taglist.class.php,将分页函数替换为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 | /** * 获取动态的分页列表 * * @access public * @param int $list_len 列表宽度 * @param string $listitem 列表样式 * @return string */ function GetPageListDM( $list_len , $listitem = "info,index,end,pre,next,pageno" ) { $prepage = "" ; $nextpage = "" ; $prepagenum = $this ->PageNo - 1; $nextpagenum = $this ->PageNo + 1; if ( $list_len == "" || preg_match( "/[^0-9]/" , $list_len )) { $list_len = 3; } $totalpage = $this ->TotalPage; if ( $totalpage <= 1 && $this ->TotalResult > 0) { return "<span class=" pageinfo ">共1页/" . $this ->TotalResult. "条</span>" ; } if ( $this ->TotalResult == 0) { return "<span class=" pageinfo ">共0页/" . $this ->TotalResult. "条</span>" ; } $maininfo = "<span class=" pageinfo ">共{$totalpage}页/" . $this ->TotalResult. "条</span>rn" ; $purl = $this ->GetCurUrl(); $basename = basename ( $purl ); $tmpname = explode ( '.' , $basename ); $purl = str_replace ( $basename , '' , $purl ).urlencode( $this ->Tag); //var_dump($purl);exit; //$purl .= "?/".urlencode($this->Tag); //获得上一页和下一页的链接 if ( $this ->PageNo != 1) { $prepage .= "<li><a href='" . $purl . "-$prepagenum'.html>上一页</a></li>rn" ; $indexpage = "<li><a href='" . $purl . "-1.html'>首页</a></li>rn" ; } else { $indexpage = "<li><a>首页</a></li>rn" ; } if ( $this ->PageNo!= $totalpage && $totalpage >1) { $nextpage .= "<li><a href='" . $purl . "-$nextpagenum.html'>下一页</a></li>rn" ; $endpage = "<li><a href='" . $purl . "-$totalpage.html'>末页</a></li>rn" ; } else { $endpage = "<li><a>末页</a></li>rn" ; } //获得数字链接 $listdd = "" ; $total_list = $list_len * 2 + 1; if ( $this ->PageNo >= $total_list ) { $j = $this ->PageNo - $list_len ; $total_list = $this ->PageNo + $list_len ; if ( $total_list > $totalpage ) { $total_list = $totalpage ; } } else { $j =1; if ( $total_list > $totalpage ) { $total_list = $totalpage ; } } for ( $j ; $j <= $total_list ; $j ++) { if ( $j == $this ->PageNo) { $listdd .= "<li class=" thisclass "><a>$j</a></li>rn" ; } else { $listdd .= "<li><a href='" . $purl . "-$j.html'>" . $j . "</a></li>rn" ; } } $plist = '' ; if (preg_match( '/info/i' , $listitem )) { $plist .= $maininfo . ' ' ; } if (preg_match( '/index/i' , $listitem )) { $plist .= $indexpage . ' ' ; } if (preg_match( '/pre/i' , $listitem )) { $plist .= $prepage . ' ' ; } if (preg_match( '/pageno/i' , $listitem )) { $plist .= $listdd . ' ' ; } if (preg_match( '/next/i' , $listitem )) { $plist .= $nextpage . ' ' ; } if (preg_match( '/end/i' , $listitem )) { $plist .= $endpage . ' ' ; } return $plist ; } |
设置伪静态规则
我们这里以iis7为例子,设置以下规则:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <?xml version= "1.0" encoding= "UTF-8" ?> <configuration> <system.webServer> <rewrite> <rules> <rule name= "weather1" stopProcessing= "true" > <match url= "tags/([^-]+).html$" ignoreCase= "true" /> <conditions logicalGrouping= "MatchAll" > <add input= "{REQUEST_FILENAME}" matchType= "IsFile" negate= "true" /> <add input= "{REQUEST_FILENAME}" matchType= "IsDirectory" negate= "true" /> </conditions> <action type= "Rewrite" url= "/tags.php?/{R:1}" appendQueryString= "false" /> </rule> <rule name= "weather2" stopProcessing= "true" > <match url= "tags/([^-]+)-([0-9]+).html$" ignoreCase= "true" /> <conditions logicalGrouping= "MatchAll" > <add input= "{REQUEST_FILENAME}" matchType= "IsFile" negate= "true" /> <add input= "{REQUEST_FILENAME}" matchType= "IsDirectory" negate= "true" /> </conditions> <action type= "Rewrite" url= "/tags.php?/{R:1}/{R:2}" appendQueryString= "false" /> </rule> </rules> </rewrite> </system.webServer> </configuration> |
可以直接保存为web.config放在站点根目录。
最后重新生成html页面

加微信交流
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架