dede如何设置404页面?

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

通过网站后台设置(推荐,最简单)

这是最直接、最安全的方法,DedeCMS 后台已经集成了相关功能。

dede 怎么做404
(图片来源网络,侵删)

步骤 1:创建 404 页面

你需要创建一个美观且实用的 404 错误页面。

  1. 设计页面内容:你可以自己设计一个 HTML 页面,内容通常包括:

    • 友好的提示语(如“抱歉,您访问的页面不存在或已被删除”)
    • 返回网站首页的链接
    • 网站地图的链接
    • 搜索框
    • 一些引导性的内容
  2. 保存页面:将这个页面保存为 html,并上传到你的网站根目录(即与 index.php 同级的目录)。

步骤 2:在 DedeCMS 后台启用 404 页面

  1. 登录后台:使用你的管理员账号登录 DedeCMS 后台。

    dede 怎么做404
    (图片来源网络,侵删)
  2. 进入系统设置:在左侧菜单栏中,找到并点击 “系统” -> “系统基本参数”

  3. 找到站点设置:在“系统基本参数”页面中,切换到 “站点设置” 选项卡。

  4. 配置 404 页面:在这个选项卡中,找到 “自定义错误页面” 这一栏。

    • 404 页面:在这里填入你刚刚上传的页面路径,即 /404.html
    • 500 页面(可选):同样可以设置一个服务器内部错误的页面。
    • 403 页面(可选):禁止访问的页面。
  5. 保存设置:点击页面底部的 “保存” 按钮。

    dede 怎么做404
    (图片来源网络,侵删)

步骤 3:服务器配置(关键步骤)

重要:仅仅在 DedeCMS 后台设置是不够的!你必须在你的 Web 服务器(如 Apache 或 Nginx)上进行配置,让服务器在遇到 404 错误时,真正去调用你设置的 html 页面,并返回正确的 404 HTTP 状态码。

对于 Apache 服务器:

你需要修改网站根目录下的 .htaccess 文件,如果这个文件不存在,就新建一个。

.htaccess 文件中添加以下代码:

# 设置 404 错误页面
ErrorDocument 404 /404.html

对于 Nginx 服务器:

你需要修改 Nginx 的配置文件(通常是 nginx.conf 或你网站对应的配置文件),在 server 块内添加以下代码:

# 设置 404 错误页面
error_page 404 /404.html;

修改完 Nginx 配置后,需要重载 Nginx 配令使其生效:

sudo nginx -s reload

通过修改 PHP 文件(备选方法)

如果你的服务器权限有限,无法修改 .htaccess 或 Nginx 配置文件,可以尝试这个方法,这个方法的核心是让 DedeCMS 的所有页面都通过一个入口文件(如 index.php)来执行,这样我们就可以在入口文件中捕获 404 错误。

步骤 1:创建 404 页面

与方法一相同,创建一个 html 页面并上传到网站根目录。

步骤 2:修改 index.php 文件

  1. 打开 index.php:在网站根目录下找到 index.php 文件。
  2. 添加代码:在文件最顶部,<?php 标签之后,添加以下 PHP 代码:
<?php
// ... index.php 文件原有的代码 ...
// 在这里添加 404 处理逻辑
// 获取请求的 URI
$request_uri = $_SERVER['REQUEST_URI'];
// 检查是否是静态页面(.html)或者动态页面
// 这里我们做一个简单的判断:如果请求的页面不是 index.php 且不是后台相关文件
if (strpos($request_uri, 'index.php') === false && 
    strpos($request_uri, 'dede') === false && 
    strpos($request_uri, 'plus') === false) {
    // 尝试判断这个页面是否存在(可选,更精确)
    // 检查是否是静态HTML文件
    $static_file = trim($request_uri, '/');
    if (!file_exists($static_file)) {
        // 如果文件不存在,则显示 404 页面
        header("HTTP/1.1 404 Not Found");
        include('404.html');
        exit();
    }
}
// ... index.php 文件原有的代码 ...
require_once (dirname(__FILE__) . "/include/common.inc.php");
require_once DEDEINC."/arc.partview.class.php";
$GLOBALS['_arcs'] = array();
$pv = new PartView();
$pv->SetTemplet($cfg_basedir . $cfg_templets_dir . "/" . $cfg_df_style . "/index.htm");
$pv->Display();
?>

代码解释:

  • header("HTTP/1.1 404 Not Found");:这一行至关重要,它告诉浏览器和搜索引擎,这是一个“未找到”的错误,而不是一个正常的页面。
  • include('404.html');:包含你的自定义 404 页面内容。
  • exit();:执行完 404 页面后,立即终止脚本,防止后续代码继续执行。

注意:这个方法相对简单,但可能不够精确,它只是简单判断了请求的 URI 是否存在对应的文件,对于复杂的动态路由,可能会有误判。方法一(服务器配置)是更专业、更可靠的做法。


重要注意事项

  1. HTTP 状态码:无论使用哪种方法,确保你的 404 页面能返回正确的 HTTP 404 状态码,你可以使用浏览器开发者工具(F12)的“网络”标签来检查,如果返回的是 200 OK,那搜索引擎会认为这个“404页面”是真实存在的,反而会造成负面影响。
  2. 页面路径:在后台设置和服务器配置中,404 页面的路径必须是相对于网站根目录的,/404.html,不要使用绝对路径(如 http://www.yoursite.com/404.html)。
  3. 测试:设置完成后,一定要进行测试,尝试访问一个不存在的页面,http://www.yoursite.com/abc123.html,看看是否能正确跳转到你的 404 页面,并且检查浏览器开发者工具中的网络状态码是否为 404。
  4. 不要对后台使用:确保你的 404 设置不会影响到 DedeCMS 后台的管理页面,方法一和二都通过排除了 dede 等目录来避免这个问题。
方法 优点 缺点 推荐度
服务器配置 标准、专业、可靠,能正确返回 404 状态码,对 SEO 友好。 需要服务器修改权限(如修改 .htaccessnginx.conf)。 ⭐⭐⭐⭐⭐ (强烈推荐)
修改 PHP 无需服务器权限,适合虚拟主机等环境。 可能不够精确,逻辑相对复杂,性能略差。 ⭐⭐⭐ (备选方案)

对于绝大多数用户,强烈建议使用方法一,这是处理 404 错误的最佳实践。

-- 展开阅读全文 --
头像
织梦CMS去版权版是否安全合规?
« 上一篇 今天
织梦动态页面文章修改,如何快速更新?
下一篇 » 今天
取消
微信二维码
支付宝二维码

目录[+]