Apache 配置自定义 404 页面需启用 ErrorDocument 指令,将 404.html 放于网站根目录,配置 ErrorDocument 404 /404.html,并验证返回状态码确为 404 Not Found。

在 Apache 中为静态网站配置自定义 404 页面,核心是让服务器对所有“找不到资源”的请求,返回你准备好的 HTML 文件,同时确保 HTTP 状态码仍是 404(不能变成 200 或 302),否则会影响 SEO 和前端逻辑判断。
确认 Apache 已启用 ErrorDocument 指令支持
Apache 默认支持该功能,无需额外模块。只要你的配置文件(httpd.conf 或站点的 .htaccess)可被读取并生效即可。
- 若用 .htaccess,需确保对应目录的 AllowOverride All 已开启(在主配置或虚拟主机中设置)
- 若直接改 httpd.conf 或虚拟主机配置,修改后记得重启 Apache(sudo systemctl restart apache2 或 apachectl graceful)
放置自定义 404 页面文件
把你的 404 页面(例如 404.html)放在网站根目录下(即 DocumentRoot 所指路径),或其子目录中(如 /errors/404.html)。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 推荐放在根目录,路径简洁不易出错
- 页面内容应为纯静态 HTML,避免内联 JS/CSS 引用失败导致样式错乱;所有资源(图片、CSS、JS)路径建议用绝对路径(以 / 开头)
- 不要在页面里做 meta refresh 或 JavaScript 跳转,否则状态码可能被浏览器覆盖为 200
在配置中添加 ErrorDocument 指令
在 .htaccess(推荐用于共享主机)或虚拟主机配置块中写入:
ErrorDocument 404 /404.html
- /404.html 是相对于网站根目录的 URL 路径,不是服务器文件系统路径
- 如果文件放在 /errors/404.html,就写 ErrorDocument 404 /errors/404.html
- 可同时配置其他错误页,如:ErrorDocument 500 /50x.html、ErrorDocument 502 /50x.html
验证状态码是否正确返回
配置完成后,务必验证:访问一个明显不存在的路径(如 /this-page-does-not-exist.html),用浏览器开发者工具的 Network 标签查看响应头。
- 状态行应显示 404 Not Found(不是 200 OK,也不是 302 Found)
- 响应体是你写的 404.html 内容
- 可用命令行快速验证:curl -I https://yoursite.com/nonexistent,检查输出中是否有 HTTP/1.1 404 Not Found

















