在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

以上设置只对本次程序运行有效。