第一步:最常见的元凶 - 伪静态规则
"404 Not Found" 错误在DedeCMS中,90% 的情况都与伪静态配置有关,当你安装一个新的模板时,模板中通常会包含大量新的URL规则(例如文章页、列表页、搜索页等),如果你的服务器没有正确加载这些规则,访问这些页面时就会返回404。

(图片来源网络,侵删)
解决方案:
你需要根据你的服务器环境,检查并正确配置伪静态规则。
Apache 服务器
DedeCMS默认提供了一套Apache伪静态规则。
- 操作步骤:
- 登录你的网站根目录(通常是
public_html或www)。 - 检查是否存在一个名为
.htaccess的文件。 - 如果存在:用文本编辑器打开它,确保文件中包含以下DedeCMS的伪静态规则:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.html$ / [L] RewriteRule ^archives-list-([0-9]+)\.html$ /plus/list.php?tid=$1 [L] RewriteRule ^archives-view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?arcID=$1 [L] RewriteRule ^category-c([0-9]+)(\/([0-9]+))?.html$ /plus/list.php?tid=$1&PageNo=$3 [L] RewriteRule ^category-c([0-9]+)-([a-zA-Z0-9]+)(\/([0-9]+))?.html$ /plus/list.php?tid=$1&keywords=$2&PageNo=$4 [L] RewriteRule ^article-read-([0-9]+)\.html$ /plus/view.php?arcID=$1 [L] RewriteRule ^article-read-([0-9]+)-([a-zA-Z0-9]+)\.html$ /plus/view.php?arcID=$1&title=$2 [L] RewriteRule ^tags-([a-zA-Z0-9]+)(\/([0-9]+))?.html$ /plus/search.php?keyword=$1&PageNo=$3 [L] RewriteRule ^tags-([a-zA-Z0-9]+)-([a-zA-Z0-9]+)(\/([0-9]+))?.html$ /plus/search.php?keyword=$1&searchtype=title&PageNo=$4 [L] RewriteRule ^feedback-list-([0-9]+)\.html$ /plus/feedback.php?aid=$1 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15&rank=$16 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15&rank=$16&addtime=$17 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15&rank=$16&addtime=$17&fid=$18 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15&rank=$16&addtime=$17&fid=$18&typeid=$19 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15&rank=$16&addtime=$17&fid=$18&typeid=$19&retype=$20 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15&rank=$16&addtime=$17&fid=$18&typeid=$19&retype=$20&reply=$21 [L] RewriteRule ^feedback-list-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/feedback.php?aid=$1&totalresult=$2&PageNo=$3&dopost=$4&goodid=$5&badid=$6&ftype=$7&username=$8&face=$9&ischeck=$10&order=$11&tempid=$12&pagesize=$13&ip=$14&key=$15&rank=$16&addtime=$17&fid=$18&typeid=$19&retype=$20&reply=$21&isadmin=$22 [L] </IfModule>
- 如果不存在:新建一个名为
.htaccess的文件,将上面的规则复制进去,然后上传到网站根目录。 - 重启Apache服务:修改后,通常需要重启Apache才能生效,如果你用的是虚拟主机,请联系你的主机商重启。
- 登录你的网站根目录(通常是
Nginx 服务器
Nginx的伪静态规则通常在配置文件中定义。

(图片来源网络,侵删)
- 操作步骤:
- 登录你的服务器,找到Nginx的网站配置文件,通常位于
/etc/nginx/sites-available/或/usr/local/nginx/conf/vhost/目录下。 - 在
server { ... }块中,添加以下DedeCMS的伪静态规则:location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=$1 last; break; } } - 保存配置文件,然后重启Nginx服务:
# 检查配置是否正确 nginx -t # 如果正确,则重载 nginx -s reload # 或者直接重启 systemctl restart nginx
- 登录你的服务器,找到Nginx的网站配置文件,通常位于
IIS 服务器
IIS的伪静态规则需要通过 "URL重写" 模块来设置。
- 操作步骤:
- 确保你的IIS已经安装了 "URL重写" 模块。
- 在网站根目录下,创建一个名为
web.config的文件。 - 复制到
web.config文件中:<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="DedeCMS" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration> - 保存文件即可。
第二步:检查网站根目录和文件权限
上传的模板文件或目录权限不正确,导致服务器无法读取文件,从而返回404。
解决方案:
- 检查网站根目录:确认你的网站文件是否都上传到了正确的目录(
public_html)。 - 检查关键目录权限:
- 使用FTP客户端(如FileZilla)或服务器的文件管理器,检查以下目录的权限是否为 755:
- (网站根目录)
/dede/(后台目录)/plus/(功能模块目录)/templets/(模板目录)/uploads/(附件上传目录)
- 检查以下目录的权限是否为 777 (为了安全,操作完成后应改回755):
/data/(数据缓存目录)/special/(专题目录)/html/(生成静态HTML文件的目录,如果你的网站开启了静态化)
- 注意:777权限有安全风险,请仅在必要时设置,并在操作完成后立即改回755。
- 使用FTP客户端(如FileZilla)或服务器的文件管理器,检查以下目录的权限是否为 755:
第三步:检查DedeCMS后台设置
后台的某些设置与模板不匹配,也会导致页面找不到。

(图片来源网络,侵删)
解决方案:
- 检查网站根目录设置:
- 登录DedeCMS后台 (
/dede/)。 - 进入【系统】-> 【系统基本参数设置】。
- 在“核心设置”里,找到“网站根目录”,确保这里的值是正确的,通常是 或者留空。
- 登录DedeCMS后台 (
- 检查是否开启了静态化:
- 进入【系统】-> 【核心栏目设置】。
- 查看是否开启了“使用目录默认主页”,以及“生成HTML目录”是否与模板文件结构匹配。
- 如果你开启了静态化,但模板文件里没有对应的
index.html文件,访问就会404,你可以尝试在后台重新生成首页和栏目页。
- 检查模板文件是否存在:
- 进入【模板】-> 【默认模板管理】。
- 检查首页、栏目页、文章页等模板文件是否存在,并且路径是否正确,首页模板路径应该是
/templets/default/index.htm。
第四步:检查模板文件本身
虽然不常见,但模板文件本身也可能有问题。
解决方案:
- 检查模板标签:确保模板中使用的DedeCMS标签(如
{dede:arclist},{dede:list}等)是正确的,没有拼写错误。 - 检查模板文件路径:模板文件(如
index.htm,list_article.htm等)是否完整地存在于/templets/你的模板目录/路径下。 - 重新上传模板:如果怀疑模板文件在上传过程中损坏,可以尝试将模板文件包重新解压,然后再次上传到
/templets/目录下,覆盖旧文件。
总结与排查顺序
遇到 "Not Found" 错误,请按以下顺序排查,大概率能解决问题:
- 【首要】检查伪静态:根据你的服务器环境(Apache/Nginx/IIS),正确配置或修复
.htaccess/nginx.conf/web.config文件,这是最常见的原因。 - 【检查文件权限:确保网站根目录、
/dede/、/plus/、/data/等关键目录权限正确。 - 【检查后台设置:确认网站根目录、静态化设置、模板路径等没有问题。
- 【检查模板文件:确认模板文件完整且标签无误。
如果以上所有方法都尝试过问题依旧存在,请提供以下信息,以便更准确地定位问题:
- 你的服务器环境是什么?(Apache 2.4, Nginx 1.18, Windows Server + IIS 10)
- 具体是哪个页面出现了404错误?(首页正常,但点击文章后404)
- 你安装的是DedeCMS的哪个版本?(DedeCMS V5.7, V7.5等)
- 错误信息是 "404 Not Found" 还是其他?
