dedecms中tags标签分页错误造成的无限空间,解决办法

  • 格式:docx
  • 大小:194.01 KB
  • 文档页数:2

看到论坛里有人提到dedecms的tags标签中的问题,
这里开个帖子,讲下解决办法吧。

借原图一用
从图中可以看出,tags.php/seo/ 存在着大量的负数的链接
这是因为dedecms tags分页中上一页的判断错误造成的,dedecms的tags默
认是每页有10个链接,当某个tag链接数大于10时,就会分页
dedecms tags分页获得上一页,下一页的判断语句是这样的
//获得上一页和下一页的链接
if($this->PageNo != 1)
{
$prepage.="<li><a href='".$purl."/$prepagenum/'>上一页
</a></li>\r\n";
$indexpage="<li><a href='".$purl."/1/'>首页</a></li>\r\n"; }
这句是说,如果当前页面tags 分页页码不等于1,那么就有上一页
于是当页面在tags.php?/seo/0/这个页面,分页就成了这样
<li><a herf='tags.php?/seo/-1/>上一页</a></li>
<li><a herf='tags.php?/seo/0/>0</a></li>
<li><a herf='tags.php?/seo/1/>下一页</a></li>
而在tags.php?/seo/-1/这个页面,上一页就是-2了,然后类推就有-3、-4、-5 .... 无穷的页面。

解决办法很简单。

打开/include/arc.taglist.class.php 这个文件

//获得上一页和下一页的链接
if($this->PageNo != 1)
更改为
if($this->PageNo> 1)
即可
dedecms5.5就存在这个问题,现在到了dedecms5.7版本了,官方还没改
经常看日志的话,很容易发现这个问题
如果之前已经有部分负数的tag页面,被搜索引擎抓取、收录。

为避免搜索引擎继续进行不必要的抓取,可用robots.txt进行限制。

规则如下:
1.Disallow: /tags.php?/*/-*/
复制代码。