You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NGINX Autoindex通用配置实现目录列表与文件正常访问

Nginx 目录索引通用配置方案

你可以通过以下配置实现需求,无需为新增文件夹单独加规则:

server {
    listen 80;
    server_name 你的实际域名;
    root 你的站点根目录绝对路径;
    # 配置首页文件查找顺序,必须包含index.php
    index index.html index.htm index.php;

    location / {
        charset UTF-8;
        autoindex on;
        autoindex_exact_size off;
        autoindex_format html;
        autoindex_localtime on;
        # 核心逻辑:先尝试访问文件,再尝试访问目录,找不到再返回404
        try_files $uri $uri/ =404;
    }

    # 保留你原有正常的PHP解析配置即可,示例如下(根据你的实际FPM地址调整)
    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

配置逻辑说明

  • Nginx 接收到目录访问请求时,会先按照index指令指定的顺序查找首页文件
  • 如果找到匹配的首页文件:存在index.html就直接返回静态内容,存在index.php就交给PHP解析器处理返回渲染后的页面,不会触发目录索引
  • 如果没有找到匹配的首页文件:自动开启目录索引展示当前目录下的文件/文件夹列表
  • 新增文件夹无需修改配置,自动适配上述规则

之前配置的问题原因

  1. 首次全局开启autoindex时PHP文件触发下载,是因为你的index指令没有包含index.php,或者PHP解析规则优先级不足,导致Nginx直接将PHP文件作为静态资源返回
  2. 仅给根路径配置autoindex时,子目录没有开启autoindex权限,无首页文件的目录会直接返回403错误
  3. 单独给每个目录加配置的方案扩展性极差,不适合有动态新增目录的场景

配置修改完成后执行nginx -t检查语法是否正确,确认无误后执行nginx -s reload重载配置即可生效。


内容的提问来源于stack exchange,提问作者Muhammad Fadli Md Khalid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:27:05