dede模板安装后显示404怎么办?

99ANYc3cd6
预计阅读时长 43 分钟
位置: 首页 DEDE建站 正文

第一步:最常见的元凶 - 伪静态规则

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

dede模板安装后notfound
(图片来源网络,侵删)

解决方案:

你需要根据你的服务器环境,检查并正确配置伪静态规则。

Apache 服务器

DedeCMS默认提供了一套Apache伪静态规则。

  • 操作步骤:
    1. 登录你的网站根目录(通常是 public_htmlwww)。
    2. 检查是否存在一个名为 .htaccess 的文件。
    3. 如果存在:用文本编辑器打开它,确保文件中包含以下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>
    4. 如果不存在:新建一个名为 .htaccess 的文件,将上面的规则复制进去,然后上传到网站根目录。
    5. 重启Apache服务:修改后,通常需要重启Apache才能生效,如果你用的是虚拟主机,请联系你的主机商重启。

Nginx 服务器

Nginx的伪静态规则通常在配置文件中定义。

dede模板安装后notfound
(图片来源网络,侵删)
  • 操作步骤:
    1. 登录你的服务器,找到Nginx的网站配置文件,通常位于 /etc/nginx/sites-available//usr/local/nginx/conf/vhost/ 目录下。
    2. server { ... } 块中,添加以下DedeCMS的伪静态规则:
      location / {
          if (!-e $request_filename) {
              rewrite ^(.*)$ /index.php?s=$1 last;
              break;
          }
      }
    3. 保存配置文件,然后重启Nginx服务
      # 检查配置是否正确
      nginx -t
      # 如果正确,则重载
      nginx -s reload
      # 或者直接重启
      systemctl restart nginx

IIS 服务器

IIS的伪静态规则需要通过 "URL重写" 模块来设置。

  • 操作步骤:
    1. 确保你的IIS已经安装了 "URL重写" 模块。
    2. 在网站根目录下,创建一个名为 web.config 的文件。
    3. 复制到 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>
    4. 保存文件即可。

第二步:检查网站根目录和文件权限

上传的模板文件或目录权限不正确,导致服务器无法读取文件,从而返回404。

解决方案:

  1. 检查网站根目录:确认你的网站文件是否都上传到了正确的目录(public_html)。
  2. 检查关键目录权限
    • 使用FTP客户端(如FileZilla)或服务器的文件管理器,检查以下目录的权限是否为 755
      • (网站根目录)
      • /dede/ (后台目录)
      • /plus/ (功能模块目录)
      • /templets/ (模板目录)
      • /uploads/ (附件上传目录)
    • 检查以下目录的权限是否为 777 (为了安全,操作完成后应改回755):
      • /data/ (数据缓存目录)
      • /special/ (专题目录)
      • /html/ (生成静态HTML文件的目录,如果你的网站开启了静态化)
    • 注意:777权限有安全风险,请仅在必要时设置,并在操作完成后立即改回755。

第三步:检查DedeCMS后台设置

后台的某些设置与模板不匹配,也会导致页面找不到。

dede模板安装后notfound
(图片来源网络,侵删)

解决方案:

  1. 检查网站根目录设置
    • 登录DedeCMS后台 (/dede/)。
    • 进入【系统】-> 【系统基本参数设置】
    • 在“核心设置”里,找到“网站根目录”,确保这里的值是正确的,通常是 或者留空。
  2. 检查是否开启了静态化
    • 进入【系统】-> 【核心栏目设置】
    • 查看是否开启了“使用目录默认主页”,以及“生成HTML目录”是否与模板文件结构匹配。
    • 如果你开启了静态化,但模板文件里没有对应的 index.html 文件,访问就会404,你可以尝试在后台重新生成首页和栏目页。
  3. 检查模板文件是否存在
    • 进入【模板】-> 【默认模板管理】
    • 检查首页、栏目页、文章页等模板文件是否存在,并且路径是否正确,首页模板路径应该是 /templets/default/index.htm

第四步:检查模板文件本身

虽然不常见,但模板文件本身也可能有问题。

解决方案:

  1. 检查模板标签:确保模板中使用的DedeCMS标签(如 {dede:arclist}, {dede:list} 等)是正确的,没有拼写错误。
  2. 检查模板文件路径:模板文件(如 index.htm, list_article.htm 等)是否完整地存在于 /templets/你的模板目录/ 路径下。
  3. 重新上传模板:如果怀疑模板文件在上传过程中损坏,可以尝试将模板文件包重新解压,然后再次上传到 /templets/ 目录下,覆盖旧文件。

总结与排查顺序

遇到 "Not Found" 错误,请按以下顺序排查,大概率能解决问题:

  1. 【首要】检查伪静态:根据你的服务器环境(Apache/Nginx/IIS),正确配置或修复 .htaccess / nginx.conf / web.config 文件,这是最常见的原因。
  2. 【检查文件权限:确保网站根目录、/dede//plus//data/ 等关键目录权限正确。
  3. 【检查后台设置:确认网站根目录、静态化设置、模板路径等没有问题。
  4. 【检查模板文件:确认模板文件完整且标签无误。

如果以上所有方法都尝试过问题依旧存在,请提供以下信息,以便更准确地定位问题:

  • 你的服务器环境是什么?(Apache 2.4, Nginx 1.18, Windows Server + IIS 10)
  • 具体是哪个页面出现了404错误?(首页正常,但点击文章后404)
  • 你安装的是DedeCMS的哪个版本?(DedeCMS V5.7, V7.5等)
  • 错误信息是 "404 Not Found" 还是其他?
-- 展开阅读全文 --
头像
unknown size的C语言数组怎么定义和使用?
« 上一篇 昨天
织梦autoindex如何设置从1开始计数?
下一篇 » 昨天

相关文章

取消
微信二维码
支付宝二维码

目录[+]