跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

XAMPP如何修改默认的错误页面

最稳妥方式是修改 httpd-multilang-errordoc.conf 文件中的 ErrorDocument 404 路径(如改为 /error/404.html),确保文件位于 DocumentRoot 下且静态资源路径正确,并同步关闭 ServerSignature Off 和 ServerTokens Prod,修改后需重启 Apache 生效。 直接改
httpd-multilang-errordoc.conf
文件最稳妥,别动
httpd.conf
里的
ErrorDocument
行——XAMPP 默认已通过
Include
加载了多语言错误页配置,硬在主配置里覆盖反而容易被忽略或冲突。 找到并编辑
httpd-multilang-errordoc.conf
XAMPP 的错误页逻辑由
conf/extra/httpd-multilang-errordoc.conf
控制,不是
httpd.conf
。路径通常是: Windows:
C:\xampp\apache\conf\extra\httpd-multilang-errordoc.conf
macOS/Linux:
/opt/lampp/etc/extra/httpd-multilang-errordoc.conf
打开后搜
404
,你会看到类似这一行:
ErrorDocument 404 /404error.html
这就是当前 404 错误的跳转路径。它指向的是 Apache DocumentRoot 下的相对路径,比如你的
DocumentRoot
是
C:/xampp/htdocs
,那实际找的就是
C:/xampp/htdocs/404error.html
。 修改建议: 把
/404error.html
换成你自己的路径,例如
/error/404.html
(注意开头的
/
,表示从 DocumentRoot 开始) 确保对应文件真实存在,且路径中不含中文、空格或特殊符号 如果用了子目录(如
/error/
),记得把整个
error
文件夹放进
htdocs
,别只放文件 静态资源引用必须用相对 DocumentRoot 的路径 你在
404.html
里写的 CSS、图片、JS 路径,是按 Apache 的 DocumentRoot 解析的,不是按 HTML 文件所在位置。比如: 假设 DocumentRoot 是
C:/xampp/htdocs
,你把
404.html
放在
C:/xampp/htdocs/error/404.html
,那么里面写
,Apache 实际会去找
C:/xampp/htdocs/logo.png
,而不是
C:/xampp/htdocs/error/logo.png
。 所以有两条路可选: 所有静态资源统一放在 DocumentRoot 根下(推荐初学者) 改用绝对路径,比如
,前提是
logo.png
确实在
htdocs/error/
里 漏掉这点,页面能打开但样式/图片全挂,你会以为配置没生效。 改完要不要重启 Apache? 取决于你改的是什么: 只改了
httpd-multilang-errordoc.conf
里
ErrorDocument
的路径 → 必须重启 Apache,否则不加载新规则 只改了
404.html
文件内容(没动配置)→ 不用重启,刷新即可生效 验证是否生效:访问一个肯定不存在的地址,比如
http://localhost/this-page-does-not-exist
,看是否跳转到你的页面。别用浏览器缓存,加个
?t=1
强刷。 为什么关掉 ServerSignature 很重要 如果你没关
ServerSignature
和
ServerTokens
,哪怕自定义了 404 页面,底部还是会显示 Apache 版本、PHP 版本等信息,形同虚设。 必须确认
httpd.conf
里这两行已显式设置(通常在文件末尾附近):
ServerSignature Off
ServerTokens Prod
常见坑: 只加了
Off
,漏了
ServerTokens Prod
,响应头里照样暴露版本号 在虚拟主机块(
)里又写了
ServerTokens Full
,它会覆盖全局设置 用 XAMPP 控制面板点 “Config” 打开的
httpd.conf
是缓存副本,实际改的不是真实文件 真正生效要三验:curl 查响应头、看错误页底部、
httpd -t
测语法。少一个都可能白忙。

相关文章