织梦tags伪静态调用id教程
1、在网站根目录下找到tags.php。打开找到$PageNo=1到exit();,如下代码:
$PageNo = 1; if(isset($_SERVER['QUERY_STRING'])) { $tag = trim($_SERVER['QUERY_STRING']); $tags = explode('/', $tag); if(isset($tags[1])) $tag = $tags[1]; if(isset($tags[2])) $PageNo = intval($tags[2]); } else { $tag = ''; } $tag = FilterSearch(urldecode($tag)); if($tag != addslashes($tag)) $tag = ''; if($tag == '') $dlist = new TagList($tag, 'tag.htm'); else $dlist = new TagList($tag, 'taglist.htm'); $dlist->Display(); exit();
把这些代码替换成如下代码:
$tagid = (isset($tagid) && is_numeric($tagid)) ? $tagid : 0; $PageNo = (isset($PageNo) && is_numeric($PageNo)) ? $PageNo : 1; if ($tagid =="0") { $dlist = new TagList($tag, 'tag.htm'); $dlist->Display();} else{$row = $dsql->GetOne("SELECT tag FROM `dedecom_tagindex` WHERE id ={$tagid}"); if (!is_array($row)) {ShowMsg('系统无此tag', '-1'); exit();} $tag = FilterSearch($row['tag']); $dlist = new TagList($tag, 'taglist.htm'); $dlist->Display();} exit();
2、修改tag标签调用的URL,打开/include/taglib/tag.lib.php文件找到如下代码,并将其注释或者删除
$row['link'] = $cfg_cmsurl."/tags.php?/".urlencode($row['keyword'])."/";
换成如下代码:
$row['link'] = "/tags/{$row['id']}.html";
3、修改tags标签分页代码。打开/include/arc.taglist.class.php,找到如下代码
if($this->PageNo != 1) { $prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li>\r\n"; $indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n"; } else { $indexpage="<li><a>首页</a></li>\r\n"; } if($this->PageNo!=$totalpage && $totalpage>1) { $nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r\n"; $endpage="<li><a href='".$purl."/$totalpage/'>末页</a></li>\r\n"; } else { $endpage="<li><a>末页</a></li>\r\n"; }
将其替换为
if($this->PageNo != 1) { $prepage.="<li><a href='".$purl."/$prepagenum/'>上一页</a></li>\r\n"; $indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n"; } else { $indexpage="<li><a>首页</a></li>\r\n"; } if($this->PageNo!=$totalpage && $totalpage>1) { $nextpage.="<li><a href='".$purl."/$nextpagenum/'>下一页</a></li>\r \n"; $endpage="<li><a href='".$purl."/$totalpage/'>末页</a></li>\r\n"; } else { $endpage="<li><a>末页</a></li>\r\n"; }
4、设置伪静态规则。在网站根目录建立一个 .htaccess文件,并把以下代码写入保存
RewriteEngine on RewriteBase / RewriteRule ^tags/([0-9]+)_([0-9]+).html$ tags.php?tagid=$1&PageNo=$2 [L] RewriteRule ^tags/([0-9]+).html$ tags.php?tagid=$1 [L]
5、最后到dedecms后台更新一下,至此已完成所有的设置。
注意:如果关键字tags中含有符号,可能会有如下提示,下一篇文章会解决该问题,系统无此标签,可能已经移除。解决方法是在根目录tags.php文件,找到代码,大概在25行
$tag = FilterSearch(urldecode($tag));
直接替换成为
$tag = urldecode($tag);
保存是不是简单解决了。
二,标签中的大写字母导致的,同样是修改目录tags.php文件,找到代码,大概在15行,
$tag = trim($_SERVER['QUERY_STRING']);
直接替换成为
$tag = strtolower(trim($_SERVER['QUERY_STRING']));
至此实现织梦tagid伪静态的效果。