errordocument 指令可设置自定义错误页,但须路径以/开头(相对于documentroot)、文件≥512b、状态码正确返回(如用php脚本调用http_response_code),且xampp中需避开多语言模块覆盖。

直接用 ErrorDocument 指令就能设置,关键在路径写对、文件放对、状态码保真——不是页面显示出来就完事了。
准备合规的错误页面文件
把所有错误页统一放在网站根目录下的 /errors/ 子目录里,例如:
- /errors/404.html
- /errors/403.html
- /errors/500.html
- /errors/503.html
每个页面要满足三项硬性要求:
- 体积 ≥ 256 字节(IE 等旧浏览器会忽略更小的页面;XAMPP 环境建议 ≥ 512 字节)
- 包含清晰标题(如“页面未找到”)、简短说明和返回首页的链接
- 纯静态 HTML 即可,不依赖 PHP 或数据库,确保故障时仍能加载
用 .htaccess 快速启用(适合虚拟主机或测试)
在网站根目录下编辑或新建 .htaccess 文件,添加类似以下内容:
ErrorDocument 404 /errors/404.html<br>ErrorDocument 403 /errors/403.html<br>ErrorDocument 500 /errors/500.html<br>ErrorDocument 503 /errors/503.html
注意:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 路径必须以 / 开头,表示相对于 DocumentRoot(不是文件系统绝对路径)
- 确保 Apache 已启用 AllowOverride FileInfo,否则该指令不生效
- 保存后无需重启服务,多数环境几秒内生效
在主配置中固化(推荐生产环境)
编辑站点配置文件(如 /etc/apache2/sites-available/your-site.conf 或 Windows 下 phpEnv 的 httpd.conf),在
ErrorDocument 404 "/errors/404.html"<br>ErrorDocument 500 "/errors/500.html"
改完后重启服务:
- Debian/Ubuntu:sudo systemctl restart apache2
- RHEL/CentOS:sudo service httpd restart
- Windows(XAMPP):控制面板 → Restart Apache,或命令行运行 httpd -k restart
特别提醒:XAMPP 默认启用了多语言错误页模块(httpd-multilang-errordoc.conf),你的配置必须写在这行 Include 之后,或直接注释掉它,否则会被覆盖。
上线前必须验证的三件事
配置完成不等于生效,务必手动确认:
- 访问一个明显不存在的路径(如 /nonexistent-abc123),看是否展示你的 404 页面
- 用 curl -I http://localhost/nonexistent 检查响应头,第一行必须是 HTTP/1.1 404 Not Found(不能是 200)
- 若用 CMS(如 WordPress)或 PHP 应用,确认没插件/脚本拦截或重写 ErrorDocument 行为;PHP 报错默认不走 500 页面,需在 Apache 配置中加 php_flag display_errors off









