[摘要]Dedecms的要害词替换即内链系统有个BUG,当别离给两个存在嵌套干系的词加链接时会呈现问题,这样倒霉于网站的优化。本文作者回收先替换较量短然后再匹配替换长的办理方案,要领见下文。
问题描写
织梦内容要害词替换的时候存在一个错误:假如拥有两个要害词,譬喻“CIT”()和“CIT信息网”(),但在文章替换的时候我们发明就会呈现问题,链接酿成了:
<a href=http://down.chinaz.com/"http:/www.cit.cn"><u><a href="">CIT</a>信息网</u></a>详见小编之前写的内链阐明文章:CMS要害词内链系统大比拼一:Phpcms VS Dedecms
办理方案
这样的嵌套错误无论对SEO照旧用户体验都是欠好的,这里我们有一个办理方案,也就是先替换较量短的,然后再匹配替换长的,这样系统则会先去替换CIT这个要害词,而不会去替换CIT信息网了。
修改代码
其实修改代码很简朴,我们直接找到include/arc.archives.class.php这个文件,在1226行代码,也就是:
//高亮专用, 替换多次是大概不能到达最多次function _highlight($string, $words, $result, $pre)
{
global $cfg_replace_num;
$string = str_replace('"', '"', $string);
后头增加一段代码,使它变为
//高亮专用, 替换多次是大概不能到达最多次
function _highlight($string, $words, $result, $pre)
{
global $cfg_replace_num;
$string = str_replace('"', '"', $string);
uasort($words,create_function('$a, $b','return strlen($a)>strlen($b);')); 总结
DedeCMS对付SEO喜好者确实是一个利器,如何用好还需要深入琢磨。
原文地点:
分享到