- 修改栏目、文章的URL规则:让系统生成的链接本身就是英文或拼音格式。
- 配置服务器伪静态规则:将用户访问的英文URL地址,真实地映射到系统内部的PHP文件上。
第一步:修改DedeCMS后台设置
这是最基础也是最关键的一步,目的是让DedeCMS生成英文或拼音链接,而不是像 plus/list.php?tid=1 这样的动态链接。

(图片来源网络,侵删)
修改栏目URL规则
- 登录您的DedeCMS后台。
- 进入「核心」 -> 「频道模型」 -> 「栏目管理」。
- 点击您要修改的栏目后面的「修改」按钮。
- 在栏目修改页面,找到「栏目选项」或「高级选项」部分。
- 找到「列表命名规则」和「文章命名规则」这两个输入框。
- 删除或修改默认的中文规则,然后填入您想要的英文/拼音规则。
常用的规则说明:
{typedir}:栏目目录,/about/。{typedir}:栏目目录,/about/。{Y}:文章发布年份,/2025/。{M}:文章发布月份,/05/。{D}:文章发布日期,/10/。{aid}:文章ID,1001。{p}:分页码,/1/。{t}:栏目拼音/英文名(需要先设置栏目的拼音)。{s}:拼音首字母(需要先设置栏目的拼音)。
推荐规则示例:
-
栏目列表页URL:
- 规则:
{typedir}/ - 效果:
/about/(如果栏目目录是about) - 更推荐(拼音): 规则:
{t}/或{s}/(前提是您在栏目信息里填写了拼音或英文别名) - 效果:
/guanyu/或/gy/
- 规则:
-
文章详情页URL:
(图片来源网络,侵删)- 规则:
{typedir}/{Y}/{M}{D}/{aid}.html - 效果:
/about/2025/05/10/1001.html - 更推荐(拼音): 规则:
{typedir}/{Y}/{M}{D}/{t}-{aid}.html({t}是文章的拼音标题,需要开启或安装相关插件) - 效果:
/news/2025/05/10/keji-xinwen-1001.html
- 规则:
- 修改完成后,点击「保持」,系统会自动根据这个规则生成新的HTML文件或链接。
修改文章URL规则
- 进入「核心」 -> 「内容发布」 -> 「普通文章」。
- 点击「增加普通文章」或修改一篇文章。
- 在文章编辑页面,找到标题下方的「高级选项」或「SEO选项」。
- 您会看到「文章命名规则」的选项,这里的规则可以单独设置,如果没设置,则使用栏目里的规则。
- 同样,填入您希望的英文/拼音规则,然后发布文章。
重要提示:
- 开启“生成HTML”:为了获得最佳效果和SEO,建议在「系统」->「系统基本参数」->「核心设置」中,将“是否使用HTML静态页”设置为“是”。
- 生成文件:修改完规则后,务必去「生成」->「更新栏目HTML」和「更新文档HTML」,让新规则生效。
第二步:配置服务器伪静态规则
这一步是让服务器“伪装”成静态文件的处理方式,当用户访问 /about/ 时,服务器实际上会去执行 plus/list.php?tid=1 这个PHP文件,但URL地址栏依然显示 /about/。
您需要根据您的服务器类型,选择对应的规则。
Apache 服务器
在您的网站根目录下创建或修改一个名为 .htaccess 的文件,并将以下规则添加进去。

(图片来源网络,侵删)
# 将 RewriteEngine 开启
RewriteEngine On
# 如果请求的是一个真实存在的文件或目录,则直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 栏目列表页规则 (/about/ -> plus/list.php?tid=1)
RewriteRule ^(.*)/plus/list\.php\?tid=(.*)$ $1/plus/list.php?tid=$2
# 文章详情页规则 (/article/1001.html -> plus/view.php?aid=1001)
RewriteRule ^(.*)/plus/view\.php\?aid=(.*)$ $1/plus/view.php?aid=$2
# 通用栏目列表页规则 (/about/ -> plus/list.php?tid=1)
# 这条规则通常更通用,能处理各种命名规则下的栏目页
RewriteRule ^([a-z0-9\-]+)/$ plus/list.php?tid=$1
# 通用文章页规则 (/guanyu/1001.html -> plus/view.php?aid=1001)
# 如果您的文章URL是 /栏目名/文章ID.html 格式
RewriteRule ^([a-z0-9\-]+)/([0-9]+)\.html$ plus/view.php?aid=$2
# 更通用的规则,适用于各种复杂的URL结构
# 这条规则会把所有.html结尾的请求都转发到 view.php
RewriteRule ^(.*)\.html$ plus/view.php?aid=$1
# 这条规则会把所有以/结尾的请求都转发到 list.php
RewriteRule ^(.*)/$ plus/list.php?tid=$1
注意:
tid=$1这种写法假设您的栏目目录名就是栏目ID,这通常不正确。- 更健壮的方式是
plus/list.php?tid=$1,但DedeCMS默认不支持,所以最推荐使用上面注释中更通用的规则,并结合DedeCMS的URL重写功能。
Nginx 服务器
在您的Nginx配置文件中(通常在 nginx.conf 或您站点的配置文件里),找到 server 块,添加以下 rewrite 规则。
server {
# ... 其他配置 ...
# 将 RewriteEngine 开启
rewrite_on;
# 如果请求的是一个真实存在的文件或目录,则不重写
if (-f $request_filename) {
break;
}
if (-d $request_filename) {
break;
}
# 栏目列表页规则 (/about/ -> plus/list.php?tid=1)
rewrite "^/([a-z0-9\-]+)/$" /plus/list.php?tid=$1 last;
# 文章详情页规则 (/article/1001.html -> plus/view.php?aid=1001)
rewrite "^/([a-z0-9\-]+)/([0-9]+)\.html$" /plus/view.php?aid=$2 last;
# 更通用的规则
rewrite "^/(.*)\.html$" /plus/view.php?aid=$1 last;
rewrite "^/(.*)/$" /plus/list.php?tid=$1 last;
# ... 其他配置 ...
}
注意:
- 修改Nginx配置后,需要执行
nginx -s reload命令来重新加载配置才能生效。
第三步:处理已生成的中文链接(可选)
如果您已经有很多使用旧中文URL规则生成的文章和栏目,直接改规则会导致旧的链接失效(404错误)。
为了解决这个问题,您可以在伪静态规则中添加301重定向,将旧的URL永久跳转到新的URL。
示例 (Apache .htaccess):
# ... 其他 RewriteRule ...
# 将旧的中文动态链接301重定向到新的静态链接
# 示例:将 plus/list.php?tid=1 重定向到 /about/
RewriteCond %{QUERY_STRING} tid=(.*)
RewriteRule ^plus/list\.php$ /about/? [R=301,L]
# 示例:将 plus/view.php?aid=1001 重定向到 /about/1001.html
RewriteCond %{QUERY_STRING} aid=(.*)
RewriteRule ^plus/view\.php$ /about/$1.html? [R=301,L]
注意:
- 这里的
/about/和/about/1001.html需要替换为您自己设置的新URL路径。 [R=301,L]表示这是一个301永久重定向,并且是最后一条规则。
总结与最佳实践
- 规划URL结构:在动手之前,先想好您的URL结构,
/栏目名/文章ID.html或/分类/年/月/文章拼音.html。 - 后台先行:先在DedeCMS后台修改栏目和文章的命名规则,并重新生成文件。
- 服务器配置:根据您的服务器类型(Apache/Nginx),添加正确的伪静态规则。
- 测试:修改配置后,务必清除浏览器缓存,测试新的URL是否能正常访问,以及旧的链接(如果存在)是否正确重定向。
- SEO考虑:英文URL虽然友好,但内容本身的质量才是SEO的根本,确保您的网站内容有价值。
如果您对技术细节不熟悉,修改伪静态规则有导致网站无法访问的风险,在进行操作前,务必备份您的网站文件和数据库,如果不确定,可以咨询您的服务器提供商或专业的技术人员。
