index指令按顺序查找目录下存在的默认文件,找到即返回;语法为index file1 file2...,作用域为server或location块,路径由root/alias与uri拼接而成。

Nginx 的 index 指令用于定义当用户访问一个目录(如 / 或 /blog/)时,Nginx 自动尝试查找并返回的默认文件列表,按顺序匹配,找到第一个存在的即返回。
index 指令的基本语法和作用
该指令写在 server 或 location 块中,格式为:
它不是“只找一个”,而是从左到右依次检查每个文件是否存在。只要某个文件在请求路径下真实存在(且有读取权限),Nginx 就会直接返回它,不再继续往后查。
常见配置示例与说明
以下是一些典型用法:
- index index.html; —— 仅支持静态首页,最简洁安全
- index index.php index.html; —— 先试 PHP,再回落到 HTML(适合 WordPress 等 PHP 应用)
- index /welcome.html; —— 可以指定子路径下的文件(需注意 root 配置是否匹配)
- 不写
index指令时,Nginx 默认只认index.html;若目录下没有该文件又未开启autoindex on,则返回 403 Forbidden
配合 root 和 location 使用的关键细节
index 查找文件的路径 = root(或 alias)指定的根目录 + 请求 URI 路径 + index 文件名。
例如:
root /var/www/site;location /app/ {
index index.php;
}
当用户访问 /app/,Nginx 实际查找的是 /var/www/site/app/index.php。
注意:index 不触发内部重定向,也不改变 URL;它只是服务端静默选择一个文件响应。
调试与验证方法
可通过以下方式确认是否生效:
- 检查 Nginx 错误日志(
error_log),若文件不存在或权限不足,会有明确提示 - 用
curl -I http://your-domain/查看响应头中的Content-Type和状态码,判断是否命中了预期文件 - 临时关闭
index,启用autoindex on;,可直观看到目录下真实存在的文件名,避免拼写错误











