404.html必须严格置于根目录、全小写命名、服务器返回真实404状态码;需含404及包裹,SPA须排除该路径避免fallback覆盖。

404.html 必须放在网站根目录、命名严格为小写、且服务器要返回真实 404 状态码——三者缺一不可,否则页面根本不会被触发。
文件名和位置必须是 404.html(全小写,无路径)
GitHub Pages、Vercel、Netlify、Cloudflare Pages 这些平台只认这个确切文件名,且只在根目录下生效。写成 404.htm、error-404.html、pages/404.html 或 404.HTML 都会失效。
- 用
git ls-files | grep 404检查 Git 是否真提交了该文件(Windows 记事本可能悄悄加 BOM) - Jekyll 用户需在
404.html开头加---前置数据块:permalink: /404.html和published: false,否则会被当作普通页面渲染 - 上传后直接访问
https://yoursite.com/404.html应该能打开,但注意:这不等于它已被设为错误页——这只是个普通 HTML 文件
服务器必须返回真实 404 状态码,不能是 200 或 302
常见错误是:页面看着像 404,但浏览器控制台显示 Failed to load resource: the server responded with a status of 200 OK。这意味着服务器把错误请求“伪装”成正常响应,搜索引擎也会把它当普通页面索引。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- Apache:在
.htaccess中写ErrorDocument 404 /404.html,路径必须以/开头 - Nginx:在
server块中加error_page 404 /404.html;,并确保location = /404.html存在且未被其他rewrite规则覆盖 - SPA(React/Vue)项目要特别小心:
location / { try_files $uri $uri/ /index.html; }这类 fallback 会吞掉所有 404,必须排除/404.html路径,例如:try_files $uri $uri/ /index.html;→ 改为try_files $uri $uri/ =404;或显式放行if ($request_uri = "/404.html") { break; }
<h1></h1> 标签里必须有 “404” 文字,不能靠图片或 JS 插入
这不是为了好看,而是 SEO 和可访问性的硬性要求。搜索引擎靠 <h1></h1> 判断页面语义,屏幕阅读器靠它播报“这是 404 页面”,用 SVG、CSS 伪元素或 JS 动态写入的 “404” 都不可靠。
立即学习“前端免费学习笔记(深入)”;
- 推荐写法:
<h1>404 Not Found</h1>或<h1>404 页面未找到</h1> - 必须用
<main></main>包裹核心内容,<h1></h1>是唯一且必需的顶级标题 - 避免写成
<div class="title">404</div>或<img src="404.png" alt="怎么用基础HTML架构搭建网站404页面" >—— 这两类在 Google Search Console 和读屏软件中均无法识别为错误页
最常被忽略的一点:即使 HTML 结构、文件名、服务器配置全对,只要用了 SPA 的通用 fallback 规则又没排除 /404.html,它就永远收不到真实 404 状态码——这时候你看到的只是个被 200 偷梁换柱的假 404。


















