直接在 apache 配置中添加 errordocument 404 /errors/404.html 即可启用自定义 404 页面,但需确保路径以 / 开头、文件大小 ≥512 字节且 apache 有读取权限,配置须置于 或 块内并重启服务。

直接在 Apache 配置里加一行 ErrorDocument 404 /errors/404.html,再把页面放对位置、重启服务,就能生效。关键不是“能不能”,而是路径、大小、权限这三处容易出错。
确认并编辑正确的配置文件
Debian/Ubuntu 系统通常用:
/etc/apache2/sites-enabled/000-default.conf(推荐优先改这个)
或全局配置:/etc/apache2/apache2.conf
RHEL/CentOS 系统则多在:/etc/httpd/conf/httpd.conf
打开对应文件,在 `
ErrorDocument 404 /errors/404.html
注意:路径必须以 / 开头,表示相对于网站根目录(DocumentRoot),不是系统绝对路径。
准备合规的 404 页面文件
把 404.html 放到网站根目录下的 errors/ 子目录中,例如:
-
/var/www/html/errors/404.html(Debian/Ubuntu 默认根目录) -
/srv/www/errors/404.html(某些自定义配置)
这个文件必须满足:
- 文件大小 ≥ 512 字节(IE 等旧浏览器会忽略小于此的页面;可用空格、注释或冗余 HTML 补足)
- 包含清晰标题,比如
<h1>404 - 页面未找到</h1> - 有返回首页的链接,如
@#@#@#@#@#@#@#@#@#@0 - 纯静态 HTML,不依赖 PHP、JS 或外部 CSS/图片(确保服务器异常时仍能加载)
检查权限与重启服务
确保 Apache 进程能读取该文件:
- 运行
ls -l /var/www/html/errors/404.html,确认权限类似-rw-r--r-- - 必要时执行:
sudo chown root:root /var/www/html/errors/404.html和sudo chmod 644 /var/www/html/errors/404.html
保存配置后,重启 Apache:
- Debian/Ubuntu:
sudo systemctl restart apache2 - RHEL/CentOS:
sudo systemctl restart httpd
验证是否真正生效
别只靠浏览器访问一个不存在的 URL 看效果——浏览器缓存或默认样式可能干扰判断。更可靠的方式是用 curl 检查响应头和内容:
-
curl -I http://localhost/nonexistent-page→ 应看到HTTP/1.1 404 Not Found -
curl http://localhost/nonexistent-page→ 输出应是你的404.html源码
如果返回的是 Apache 默认页或 500 错误,说明路径写错、文件不可读,或配置没加载成功。











