在织梦中,404页面通常由两部分组成:

- 系统核心文件:处理404错误逻辑并跳转到自定义页面的PHP文件。
- 自定义展示文件:用户自己创建的HTML页面,用于向访客展示友好提示。
第一部分:系统核心文件 - php
这个文件是织梦404机制的“大脑”,它的作用是:
- 捕获所有404错误(即访问的页面不存在)。
- 记录错误日志,方便管理员排查。
- 自动将访客重定向到你指定的自定义404页面。
文件位置:
/你的网站根目录/404.php
如何修改 php 文件:
这个文件通常不需要你从头创建,它默认就存在于织梦的根目录下,你只需要用代码编辑器(如VS Code, Sublime Text, Notepad++)打开它,并根据你的需求进行修改。

默认的 php 文件内容分析:
<?php
// 404页面
require_once (dirname(__FILE__) . "/include/common.inc.php");
$custompage = 404; // 自定义页面标记
if(isset($custompage))
{
// 你可以在这里自定义你的404页面,
// header("HTTP/1.1 404 Not Found");
// header("Status: 404 Not Found");
// 引入你自定义的404模板文件
// include(DEDEROOT.'/templets/404.htm');
// 或者直接输出一段HTML
// echo '很抱歉,您访问的页面不存在!';
// 织梦默认的跳转方式是跳转到首页
// 如果你想跳转到自定义的404页面,请取消下面这行代码的注释,并修改URL
// header('Location: http://www.yourdomain.com/404.html');
// 如果你想显示一个自定义的404页面,而不是跳转,请取消下面的注释
// 并确保 /templets/ 目录下有一个 404.htm 文件
include(DEDEROOT.'/templets/404.htm');
}
else
{
// 如果没有设置自定义页面,则默认跳转到首页
header("Location:/");
}
?>
修改步骤和推荐做法:
最推荐的做法是创建一个独立的404页面文件,然后让 php 引用它,这样做的好处是分离逻辑和内容,管理更清晰。
步骤1:创建你的自定义404页面文件

在你的网站根目录下,创建一个名为 html 的文件,这个文件就是访客最终看到的页面。
示例 html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">404 - 页面未找到 - 你的网站名称</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body { font-family: 'Microsoft YaHei', Arial, sans-serif; text-align: center; padding: 100px 20px; background-color: #f9f9f9; }
.container { max-width: 600px; margin: 0 auto; background: #fff; padding: 40px; border-radius: 8px; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
h1 { color: #e74c3c; font-size: 72px; margin: 0 0 20px 0; }
p { color: #555; font-size: 18px; line-height: 1.6; margin-bottom: 30px; }
a { display: inline-block; background-color: #3498db; color: #fff; padding: 12px 30px; text-decoration: none; border-radius: 5px; font-size: 16px; transition: background-color 0.3s; }
a:hover { background-color: #2980b9; }
</style>
</head>
<body>
<div class="container">
<h1>404</h1>
<p>抱歉,您访问的页面不存在或已被移除。</p>
<p>可能是输入有误,或者页面已被删除。</p>
<a href="/">返回网站首页</a>
</div>
</body>
</html>
步骤2:修改 php 文件
打开根目录下的 php 文件,将其内容修改为以下代码,使其直接跳转到你刚刚创建的 html 页面。
<?php
// 织梦CMS 404错误页面处理
// 直接跳转到我们自定义的404.html页面
header('HTTP/1.1 404 Not Found');
header('Status: 404 Not Found');
header('Location: /404.html');
exit();
?>
代码解释:
header('HTTP/1.1 404 Not Found');:向浏览器发送正确的HTTP 404状态码,告诉服务器“这个页面真的不存在”。header('Status: 404 Not Found');:在某些服务器环境下(如Nginx)需要这行来确保状态码正确。header('Location: /404.html');:将访客重定向到你的自定义404页面。exit();:立即终止脚本执行,防止后续代码干扰。
第二部分:服务器配置(重要!)
仅仅有 php 文件是不够的,你必须告诉服务器(如Apache或Nginx),当遇到404错误时,要去执行 php 这个文件,否则,服务器会使用自己的默认404页面。
Apache 服务器配置
如果你的服务器是Apache,需要修改 .htaccess 文件。
文件位置:
/你的网站根目录/.htaccess
修改方法:
在 .htaccess 文件中添加或修改以下代码:
# 将所有404错误重定向到根目录下的404.php文件 ErrorDocument 404 /404.php
如何找到 .htaccess 文件?
它通常隐藏在网站根目录,你可能需要在FTP工具或文件管理器中设置“显示隐藏文件”才能看到。
Nginx 服务器配置
如果你的服务器是Nginx,需要修改Nginx的配置文件(通常是 nginx.conf 或站点配置文件)。
修改方法:
在 server 块中添加以下配置:
error_page 404 /404.php;
注意:
修改Nginx配置后,需要重新加载或重启Nginx服务才能生效,通常使用命令 sudo nginx -s reload。
完整设置流程
-
创建自定义页面:
- 在网站根目录创建
html文件,并填入你设计的HTML内容(包含友好的提示和返回首页的链接)。
- 在网站根目录创建
-
修改核心逻辑文件:
- 打开网站根目录下的
php文件。 - 替换为:
<?php header('HTTP/1.1 404 Not Found'); header('Status: 404 Not Found'); header('Location: /404.html'); exit(); ?>
- 打开网站根目录下的
-
配置服务器:
- 如果是Apache:编辑根目录下的
.htaccess文件,添加ErrorDocument 404 /404.php。 - 如果是Nginx:编辑Nginx配置文件,在
server块中添加error_page 404 /404.php;,然后重载Nginx。
- 如果是Apache:编辑根目录下的
-
测试:
- 访问一个你网站上确定不存在的页面(
http://www.yourdomain.com/a-page-that-does-not-exist.html)。 - 如果一切正常,你应该会看到你自定义的
html页面,并且浏览器地址栏的URL可能会保持不变,也可能变成html,这取决于你的php实现,更重要的是,浏览器开发者工具(F12)的“网络”标签中,响应状态码应该是404 (Not Found)。
- 访问一个你网站上确定不存在的页面(
完成以上步骤,你的织梦网站就拥有了一个功能完整、外观友好的自定义404页面了。
