必须将404.html严格置于项目根目录、全小写命名,并确保服务器返回真实HTTP 404状态码;GitHub Pages、Vercel等平台仅识别此路径与命名,且和须含“404”,主内容需包裹在中。

直接放根目录、严格小写命名、确保返回真实 404 状态码——这三步没做对,其他全白搭。
文件名和位置必须是 404.html(全小写,无路径)
GitHub Pages、Vercel、Netlify、Cloudflare Pages 这些平台只识别项目根目录下的 404.html。写成 404.htm、error.html、pages/404.html 或 404.HTML 都不会被接管。
- 用
git ls-files | grep 404检查 Git 是否真提交了该文件(Windows 记事本可能加 BOM,导致上传后失效) - Jekyll 用户需在
404.html开头加---\npermalink: /404.html\npublished: false\n---,否则会被当作普通页面渲染 - 宝塔/Nginx/Apache 用户别只改前端文件,还得配服务器规则(见下一条)
服务器必须返回真实 404 Not Found 状态码
光有 404.html 文件毫无意义。如果浏览器 Network 面板里看到的是 200 OK 或 302 Found,那搜索引擎会把它当正常页面收录,用户也看不到“这是错误页”的语义信号。
- 用
curl -I https://yoursite.com/xxx或浏览器开发者工具的 Network 标签页确认响应头含HTTP/1.1 404 Not Found - Nginx 配置示例:
error_page 404 /404.html;,同时要加location = /404.html { internal; },防止被 rewrite 规则覆盖 - Apache 用户在
.htaccess中写ErrorDocument 404 /404.html,路径必须以/开头 - SPA 应用(React/Vue)常见坑:
location / { try_files $uri $uri/ /index.html; }会把所有请求兜底到index.html,返回 200,必须排除/404.html路径
里必须出现 “404” 字样,且用 包裹内容
这不是为了好看,而是 SEO 和屏幕阅读器识别页面意图的硬性要求。Google 和视障用户依赖结构标签判断页面类型。
-
或404 Not Found
—— 不能用图片、SVG 文本或 JS 动态插入“404”页面未找到(404)
- 主内容必须放在
内,或至少加role="main"的容器,让辅助技术跳过导航直读错误信息 -
必须含 “404”,例如404 - 页面不存在 - 避免用
window.location.href = "/"自动跳转:Google 会判为软 404;如需跳转,用location.replace("/")并配合动画延时(见进阶提示)
最容易被忽略的是状态码验证和 语义包裹——很多人页面看着对了,但 Google Search Console 里全是“已索引的 404 页面”,问题就出在这两处。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











