织梦内容管理系统(DedeCms) 以简单、实用、开源而闻名,是国内最知名的PHP开源网站管理系统,也是使用用户最多的PHP类CMS系统,在经历了二年多的发展,目前的版本无论在功能,还是是易用性方面,都有了长足的发展,DedeCms免费版的主要目标用户锁定在个人站长,功能更专注于个人网站或中小型门户的构建,当然也不乏有企业用户和学校等在使用本系统,据不完全统计,目前正在运行的使用DedeCms开发的网站已经超过一万个。
织梦内容管理系统(DedeCms)居于PHP+MySQL的技术架构,完全开源加上强大稳定的技术架构,使你无论是目前打算做个小型网站,还是想让网站在不断壮大后系仍能得到随意扩充都有充分的保证。
织梦dedecms程序本身对于SEO优化就已经做得比较好做得比较细,灵活性也很强,相信这也她受到大家喜爱的原因之一。不过没有什么是十全十美的,DEDE虽然已经做了足够多的工作,但也总是有一些细节的东西,要我们去发现,去修改,去灵活使用,比如织梦DEDECMS栏目列表分页链接的优化。
先看看DEDE默认栏目列表分页链接:
<li><a href=’list_4_1.html’>首页</a></li>
<li><a href=’list_4_3.html’>上一页</a></li>
<li><a href=’list_4_1.html’>1</a></li>
<li><a href=’list_4_2.html’>2</a></li>
<li><a href=’list_4_3.html’>3</a></li>
<li class=”thisclass”>4</li>
<li><a href=’list_4_5.html’>5</a></li>
<li><a href=’list_4_5.html’>下一页</a></li>
<li><a href=’list_4_5.html’>末页</a></li>
这种链接方式其实并不十分合理,回到列表第一页的地址变成了list_4_1.html,这样已经无意中分散了栏目页的权重。如果这是http://www.ithov.com/abc/这个栏目的列表分页链接,下面的链接方式才更合理:
<li><a href=’/abc/’>首页</a></li>
<li><a href=’list_4_3.html’>上一页</a></li>
<li><a href=’/abc/’>1</a></li>
<li><a href=’list_4_2.html’>2</a></li>
<li><a href=’list_4_3.html’>3</a></li>
<li class=”thisclass”>4</li>
<li><a href=’list_4_5.html’>5</a></li>
<li><a href=’list_4_5.html’>下一页</a></li>
<li><a href=’list_4_5.html’>末页</a></li>
我也因这个此问题在网上找了好些方法,但是很多都不能用,当然,也有可以用的,但是都会有个条件:使用这种方法的前提是生成的栏目列表页面要放在栏目的根文件夹下(也就是说只有一级栏目适用)。
而很多朋友的网站栏目列表页都不是放在根目录下的(特别是二级栏目),怎么办呢?在经过深入研究和高人的指点后,我成功修改了前辈们的方法,使得栏目列表页面不管在不在根文件夹下都一样适用。下面重点介绍方法(以5.6版本为例):
1.找到\include\arc.listview.class.php这个文件,将
$typedir= ereg_replace(‘{cmspath}’,$GLOBALS['cfg_cmspath'],$this->Fields['typedir']);
这段代码添加到”//获得上一页和主页的链接”前面;
2.找到下面几行代码(就在”//获得上一页和主页的链接”下面)
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”;
}
改成:
if($this->PageNo != 1)
{
if($prepagenum==1)
{
$prepage.=”<li><a href=\”".$typedir.”/\”>上一页</a></li>\r\n”;
}
else
{
$prepage.=”<li><a href=\”".str_replace(“{page}”,$prepagenum,$tnamerule).”\”>上一页</a></li>\r\n”;
}
$indexpage=”<li><a href=\”".$typedir.”/\”>首页</a></li>\r\n”;
}
3.找到
$listdd.=”<li><a href=’”.str_replace(“{page}”,$j,$tnamerule).”‘>”.$j.”</a></li>\r\n”;
改成:
if($j==1)
{
$listdd.=”<li><a href=\”".$typedir.”/\”>”.$j.”</a></li>\r\n”;
}
else
{
$listdd.=”<li><a href=\”".str_replace(“{page}”,$j,$tnamerule).”\”>”.$j.”</a></li>\r\n”;
}
好了,只需3步,大功告成了。而且在这个文件里,列表分页样式也可以直接修改。效果参考:http://www.duanwenxue.com/sanwen/suibi/。这样修改之后,就不再是出现list_4_1.html这样的链接,而是都直接链接到/abc/这样的地址。虽说这只是个小细节的修改,但是小细节有时候起到的作用却不能小觑。这样改之后保证链接回到的都是默认的列表页,避免了权重的流失,更符合SEO的做法。
往后还会有其他方面的修改细节会慢慢分享出来,请关注韦文成博客。
原文地址:http://www.weiwencheng.com/archives/105
尊重作者,转载请注明来源。如在修改过程中遇到问题,可以在我博客留言,我会尽一份微薄之力,尽量给大家帮忙。