index.html是Web服务器默认查找的首页文件名,由HTTP服务器(如Nginx、Apache)在请求根路径“/”时按预设顺序(如index.html→index.htm→index.php)自动匹配并返回,该机制与浏览器“设为首页”无关,且需确保文件位于网站根目录、全小写、带.html后缀。

index.html 是服务器默认找的首页文件名,不是随便起的,也不是浏览器或用户能改的“首页设置”。
为什么访问域名就自动打开 index.html?
这是 HTTP 服务器(比如 Nginx、Apache)的默认行为:当请求路径是 /(即没带任何文件名),服务器会在根目录下按固定顺序查找预设的欢迎文件列表,index.html 就在其中(常见顺序如:index.html → index.htm → index.php)。查到就直接返回,不查到就报 403 Forbidden 或 404 Not Found。
这个行为可配置,但绝大多数托管服务(Vercel、GitHub Pages、Netlify)都默认启用,且不让你改——你只能确保自己放对了文件名。
- 别写成
Index.html或INDEX.HTML:Linux 服务器区分大小写,index.html必须全小写 - 别漏掉
.html后缀:写成index或index.htm在某些环境里可能不生效 - 别放在子目录里还指望它当首页:它必须位于网站根目录(比如部署时的
/路径下)
index.html 和浏览器“设为首页”根本不是一回事
有人混淆是因为都带“首页”俩字。但浏览器的“首页设置”是本地配置,指向任意 URL(比如 https://example.com/login.html),和服务器上的 index.html 没半点关系。前者是用户操作,后者是 HTTP 协议 + 服务器规则共同决定的入口契约。
立即学习“前端免费学习笔记(深入)”;
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
你本地双击打开 index.html 文件,走的是 file:// 协议,完全绕过服务器逻辑——这时候它只是个普通 HTML 文件,不会触发任何“默认首页”机制。
什么时候不能只靠 index.html?
单页应用(SPA)如 React、Vue 项目构建后,路由是前端控制的(比如 /dashboard),但刷新页面时请求仍会发到服务器。如果服务器没配 fallback(例如把所有非静态资源请求都返回 index.html),就会 404。
常见解决方式:
- Nginx 配置里加
try_files $uri $uri/ /index.html; - Netlify 用户加
_redirects文件,内容写/* /index.html 200 - Vercel 默认已处理,无需额外操作
漏掉这步,开发时一切正常,上线一刷新就白屏或 404——这是最常被忽略的部署细节。

















