404.html必须严格命名为404.html并置于网站根目录(与index.html同级),github pages等平台仅识别该路径和名称;apache需用errordocument 404 /404.html(路径以/开头),nginx需配置error_page 404 /404.html且在server块中配合location = /404.html规则,测试须通过真实http请求并检查network中状态码是否为404。

404.html 文件必须放在网站根目录,且命名不能改
直接把 index.html 改成 404.html 不起作用——它只是个普通 HTML 文件,服务器根本不会把它当错误页用。真正生效的条件只有一个:文件名严格为 404.html,且位于网站根目录(和 index.html 同级)。GitHub Pages、Netlify 等平台只认这个路径和名字;Vercel 虽支持配置,但默认不识别,必须显式声明。
Nginx 必须显式写 error_page 404 /404.html;
宝塔面板里点「启用自定义错误页」只是图形化操作,底层仍靠 Nginx 的 error_page 指令生效。如果你手动改过配置文件,要确认:error_page 404 /404.html; 这行在 server 块里,且路径以 / 开头(表示网站根目录);同时确保有 location = /404.html { } 或类似规则允许直接访问该文件,否则会被 try_files $uri $uri/ /index.html; 拦截,导致返回 200 状态码的假 404。
Apache 用 ErrorDocument,别漏斜杠和换行
在宝塔「伪静态」或 .htaccess 中加这一行:ErrorDocument 404 /404.html。注意三点:/404.html 必须以斜杠开头;不能写成 ./404.html 或 404.html;Apache 不认分号,换行才是语句结束标志。如果用了 WordPress 或其他 CMS 的伪静态规则,这条必须放在规则末尾,否则可能被覆盖。
本地双击 index.html 根本测不出 404 效果
所有测试必须走真实 HTTP 请求:用 http://localhost:8000/xxx(启动了本地服务器)或正式域名访问一个明显不存在的路径,比如 https://yoursite.com/asdf123456。打开浏览器开发者工具 → Network 标签,看响应状态码是不是 404 Not Found,响应内容是不是你的 404.html。如果看到地址栏跳转、状态码是 200 或 302,说明配置没生效,不是页面写得不对。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











