下面我将从优化原则、具体操作步骤、进阶技巧三个方面,为你详细讲解如何优化DedeCMS的文章URL。

优化原则(在动手前先明确方向)
一个好的URL应该遵循以下几个原则:
- 简洁性:去掉多余的、无意义的字符,如
?id=123、&p=1等。 - 可读性:使用人类能看懂的词汇,而不是一串数字或乱码。
/article/seo-tips.html就比/article/arc-123.html更好。 - 关键词相关性:在URL中尽可能包含目标页面的核心关键词,这对SEO有直接帮助。
- 唯一性:每个URL都应该对应唯一的页面,避免重复内容。
- 稳定性:一旦确定,就不要轻易修改,否则会导致大量的404错误,影响SEO。
具体操作步骤(核心部分)
DedeCMS的URL优化主要通过后台的“核心”->“系统基本参数”设置,以及修改模板文件来实现。
步骤1:后台全局设置
这是最基础也是最关键的一步。
- 登录DedeCMS后台。
- 进入 “核心” -> “系统基本参数”。
- 在左侧菜单中选择 “核心设置”。
你需要关注以下几个关键选项:

文件命名规则
这是URL优化的核心,DedeCMS支持两种模式:Rewrite 和 static。
-
静态模式 (推荐):生成
.html后缀的静态文件,URL最简洁,对SEO最友好。- 设置方法:将“文件命名规则”中的“文章命名规则”修改为:
{typedir}/{Y}/{M}{D}/{aid}.html- 参数解释:
{typedir}:文章所在栏目目录。{Y}:年份,如2025。{M}:月份,如10。{D}:日期,如25。{aid}:文章ID。
- 示例URL:
/jishu/2025/1025/123.html - 进阶优化(强烈推荐):将文章标题也加入URL,这样更符合SEO和用户体验。
{typedir}/{Y}/{M}{D}/{aid}-{title}.html- 示例URL:
/jishu/2025/1025/123-dedecms-url-youhua.html - 注意中的中文和特殊符号会被自动转为拼音或下划线,确保URL的有效性。
- 示例URL:
- 参数解释:
- 设置方法:将“文件命名规则”中的“文章命名规则”修改为:
-
伪静态模式:URL看起来像静态的,但实际是动态的,需要服务器配置支持(如Apache的
mod_rewrite或Nginx的rewrite规则)。
(图片来源网络,侵删)- 设置方法:将“文件命名规则”修改为类似静态的格式,如
{typedir}/{aid}.html。 - 服务器配置:这需要你手动修改服务器的配置文件,DedeCMS官方或网上有很多现成的
.htaccess(Apache)或nginx.conf(Nginx)规则可供参考。
- 设置方法:将“文件命名规则”修改为类似静态的格式,如
是否使用目录默认名
- 设置方法:将此项设置为“是”。
- 作用:如果栏目设置了“目录默认页”,访问栏目URL时会默认显示这个页面,而不是栏目列表页,这有助于集中权重。
文章命名规则(栏目页)
- 设置方法:可以设置为
{typedir}/index.html。 - 作用:让栏目页也生成静态的
index.html文件,保持URL风格统一。
保存并更新缓存
修改完所有参数后,一定要点击“保存并更新缓存”,否则设置不会生效。
步骤2:修改模板文件
仅仅在后台设置是不够的,你需要修改模板文件,让生成的链接符合你的规则。
- 找到文章列表页模板:通常位于
/templets/default/list_article.htm或你自定义的模板目录下。 - 找到文章内容页模板:通常位于
/templets/default/article_article.htm或你自定义的模板目录下。
在这些模板文件中,找到生成文章链接的代码,通常是:
列表页模板 (list_article.htm)
原始代码可能是:
<a href='[field:arcurl/]'>[field:title/]</a>
这个 [field:arcurl/] 标签会自动调用你在后台“系统基本参数”中设置的“文章命名规则”,只要你后台设置正确,这里的链接就会自动优化。
页模板 (article_article.htm)**
同样,文章内部的链接、面包屑导航等,也都需要使用 [field:arcurl/] 来获取当前文章的正确URL。
面包屑导航优化
面包屑导航对SEO和用户体验非常重要,确保你的面包屑代码能正确生成层级路径。
在 article_article.htm 中,面包屑代码通常是这样的:
<a href='{dede:global.cfg_cmsurl/}/'>首页</a> > {dede:field name='typename'/} > <a href='{dede:field name='arcurl'/}'>{dede:field name='title'/}</a>
这里的 {dede:field name='arcurl'} 会自动使用你优化后的URL。
步骤3:生成和更新
完成以上设置后,你需要重新生成网站内容,让新的URL规则生效。
- 更新首页:在后台“更新主页”中生成首页HTML。
- 更新栏目:在“栏目管理”中,对每个栏目选择“更新栏目HTML”和“更新栏目下的文档HTML”。
- 更新文档:在“文档列表”中,你可以选择“一键生成所有HTML”或批量选择文章进行更新。
进阶技巧与注意事项
-
处理已存在的旧URL
- 问题:网站已经运行了一段时间,有大量文章使用了旧的URL(如
?aid=123),如果直接改成新的静态URL,会导致用户通过旧链接访问时出现404错误,搜索引擎的索引也会失效。 - 解决方案:使用 301重定向。
- Apache服务器:在网站根目录的
.htaccess文件中添加以下规则:# 将旧动态URL重定向到新静态URL RewriteRule ^article\.php\?aid=(.*)$ /jishu/$1.html [R=301,L] # 更通用的规则,将所有旧动态链接重定向 RewriteCond %{QUERY_STRING} ^aid=(\d+)$ RewriteRule ^article\.php$ /%1.html? [R=301,L](注意:以上规则需要根据你的实际栏目结构和旧URL格式进行调整)
- Nginx服务器:在
nginx.conf或站点的配置文件中添加:# 将旧动态URL重定向到新静态URL if ($args ~* "aid=(\d+)") { rewrite ^/article\.php$ /jishu/$1.html? permanent; } - DedeCMS自带方法:DedeCMS在开启伪静态后,有一定的兼容性,但不如手动配置301重定向可靠。
- Apache服务器:在网站根目录的
- 问题:网站已经运行了一段时间,有大量文章使用了旧的URL(如
-
URL长度控制 虽然包含标题很好,但如果标题过长,会导致URL变得非常冗长,可以设置一个最大长度,并自动截断,DedeCMS默认会处理,但也可以通过修改
include/helpers/archive.helper.php文件来自定义逻辑。 -
URL中的特殊字符 确保URL中的中文被正确地转换为拼音或拼音加数字,并且空格、特殊符号被替换为连字符或下划线
_,DedeCMS默认支持,但可以检查一下后台“系统基本参数”->“核心设置”中的“文件命名规则”是否支持。 -
检查robots.txt 确保你的
robots.txt文件没有禁止搜索引擎抓取你的新URL结构,特别是如果你之前有禁止抓取动态URL,现在改成静态后,需要相应地更新规则。
DedeCMS文章URL优化的核心流程是:
后台设置规则 -> 修改模板调用规则 -> 重新生成内容 -> 处理旧URL重定向
简洁、可读、含关键词是优化URL的黄金法则,花时间做好URL优化,将为你的网站带来长远的SEO收益。
