在SEO优化中,URL结构的合理性和可读性是非常重要的。本文将详细介绍如何修改Dedecms默认的文章和列表命名规则,以实现更符合SEO需求的URL形式。
一、Dedecms 修改默认文章命名规则
1、单独添加分类默认修改
修改文件:include/common.inc.php。
查找代码:
//文档的默认命名规则
$art_shortname = $cfg_df_ext = '.html';
$cfg_df_namerule = '{typedir}/{Y}/{M}{D}/{aid}'.$cfg_df_ext;
更改为:
$art_shortname = $cfg_df_ext = '.html';
$cfg_df_namerule = '{typedir}/{pinyin}'.$cfg_df_ext;
2、批量添加分类默认修改
修改文件:dede/templets/catalog_add_quick.htm
查找代码并更改为:
文章命名规则:
二、Dedecms 修改默认列表命名规则
1、单独添加分类默认修改
修改文件:dede/templets/catalog_add.htm
查找代码并更改为:
列表命名规则:
2、批量添加分类默认修改
修改文件:dede/templets/catalog_add_quick.htm
查找代码并更改为:
列表命名规则:
三、解决子级栏目生成列表文件时出错的问题
打开include/arc.listview.class.php,找到323行代码:
$makeFile = str_replace("{page}", $this->PageNo, $makeFile);
在此行代码下面添加以下代码:
if(strpos($makeFile,"//")>0){
$tmpArr = explode("//",$makeFile);
$makeFile = $tmpArr[0];
if(strpos($tmpArr[1],"/")>0){
$tmpArr1 = explode("/",$tmpArr[1]);
$makeFile .= "/".$tmpArr1[1];
}else{
$makeFile .= "/".$tmpArr[1];
}
}
然后找到下面的代码:
$list_1 = $this->GetTruePath().$onlyrule;
同样在下面添加代码:
if(strpos($list_1,"//")>0){
$tmpArr = explode("//",$list_1);
$list_1 = $tmpArr[0];
if(strpos($tmpArr[1],"/")>0){
$tmpArr1 = explode("/",$tmpArr[1]);
$list_1 .= "/".$tmpArr1[1];
}else{
$list_1 .= "/".$tmpArr[1];
}
}
保存后,列表页和文章页都采用拼音的URL形式了,这更有利于SEO优化搜索。
有时Dede后台生成栏目列表页太多时,可能会出现未生成完就退出循环的情况。这可能是由于代码执行时间不够或内存不足导致的。可以通过以下设置解决:
set_time_limit(0); // 设置代码执行最大时间为不限制
ini_set("memory_limit", 1048576000); // 设置内存限制为1G
以上设置只对本次程序运行有效。