织梦的默认栏目分页样式(如下图),不知道大家有没有注意到我们从第二页返回第一页时url地址和默认的首页url地址重复了。

织梦默认的栏目列表页分页首页地址:
http://blmoe.cn/moban/
和列表第一页地址:
http://blmoe.cn/moban/list_2_1.html
从SEO优化的角度来说一个页面应该只能对应一个URL,确保url唯一性。出于这个原因,我们需要对织梦做一下优化。
织梦栏目列表页分页首页和第一页地址去重教程
首先先备份!先备份! 先备份!
打开 /include/arc.listview.class.php 找到 (大概在1003行)
$tnamerule = preg_replace("/^(.*)\//", '', $tnamerule);
在它下面加入
$typedir = GetOneTypeUrlA($this->Fields);
$tnamerule = ($prepagenum==1) ? $typedir : $tnamerule;
如下图

ok,改成成功,重新生成然后前台刷新看一下效果吧!如果这个最新织梦栏目列表页分页首页和第一页地址去重方法不行,请还原刚刚的备份文件,然后用之前的老方法尝试一下。
修正步骤
1.打开/include/arc.listview.class.php这个文件,找到如下代码:
$tnamerule = preg_replace("/^(.*)\//", '', $tnamerule);
2.在这段代码之后,以及注释:“//获得上一页和主页的链接”之前,及这两者之间添加如下代码:
$typedir= ereg_replace('{cmspath}',$GLOBALS['cfg_cmspath'],$this->Fields['typedir']);
3.在前面的注释”//获得上一页和主页的链接”后面找到代码段:
if($this->PageNo!= 1)
{
$prepage.="<li><a href='".str_replace("{page}",$prepagenum,$tnamerule)."'>上一页</a></li>\r\n";
$indexpage="<li><a href='".str_replace("{page}",1,$tnamerule)."'>首页</a></li>\r\n";
}
else
{
$indexpage="<li>首页</li>\r\n";
}
替换成:
if($this->PageNo != 1)
{
if($prepagenum==1)
{
$prepage.="<a href=\"".$typedir."/\">前一页</a>\r\n";
}
else
{
$prepage.="<a href=\"".str_replace("{page}",$prepagenum,$tnamerule)."\">前一页</a>\r\n";
}
$indexpage="<a href=\"".$typedir."/\">首页</a>\r\n";
}
4.再找到代码:
$listdd.="<li><a href='".str_replace("{page}",$j,$tnamerule)."'>".$j."</a></li>\r\n";
替换成:
if($j==1)
{
$listdd.="<a href=\"".$typedir."/\">".$j."</a>\r\n";
}
else
{
$listdd.="<a href=\"".str_replace("{page}",$j,$tnamerule)."\">".$j."</a>\r\n";
}
这样“首页”和列表页码“1” 都指向了该栏目的唯一地址。
【技巧总结】
在获取上一页增加判断,如果当前页面等于第一页,那么地址等于默认栏目页首页地址,然后输出默认首页地址。
猜你喜欢