phpstudy nginx 目录索引失败 404 Not Found 的原因

本文介绍了一种解决使用PHPStudy时遇到的Nginx 404 NotFound错误的方法。通过调整站点的默认文档设置,具体是移除错误页面路径,解决了因错误配置导致的文件索引显示问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决方法:

打开站点的 nginx 配置文件(一般在 nginx 目录的 conf/vhosts 下面),

把默认文档

index index.php index.html error/index.html;

改成

index index.php index.html;

即去除:error/index.html。

原因:

有时临时在本地测点东西又懒得开homestead时,就偷懒用了一下phpstudy,用的phpstduy8.1.1.3的版本,建立了网站后打开了目录索引。

 然后在浏览器打开建好的站点后,并没有预期把目录里面的文件列出来,而是显示 为 404 Not Found。看了一下nginx vhost下新建站点的配置,如下:

server {
        listen        80;
        server_name  test;
        root   "E:/test";
        location / {
            index index.php index.html error/index.html;
            error_page 400 /error/400.html;
            error_page 403 /error/403.html;
            error_page 404 /error/404.html;
            error_page 500 /error/500.html;
            error_page 501 /error/501.html;
            error_page 502 /error/502.html;
            error_page 503 /error/503.html;
            error_page 504 /error/504.html;
            error_page 505 /error/505.html;
            error_page 506 /error/506.html;
            error_page 507 /error/507.html;
            error_page 509 /error/509.html;
            error_page 510 /error/510.html;
            include E:/test/nginx.htaccess;
            autoindex  on;
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

autoindex  on; 目录索引是已经打开的。搞了半天,最后终于找到原因。phpstudy在新建站点时会自动创建 error 文件夹,里面放了些 errop_page 的页面其中也放了 index.html,而大多人肯定是强迫症习惯性地把 error 文件夹删除掉。看到上面配置里站点的默认文件时,你也忽然明白原因了吧,

index index.php index.html error/index.html;

后面这段 error/index.html 实体目录已经被我删除,所以 nginx 报  404 Not Found.

解决方法,直接把上行的 error/index.html 删除。重启 nginx,搞定。

 

扩展笔计

可以再加上两个参数

autoindex_exact_size off;
默认为 on 时,显示文件大小的单位是 bytes
设置为 off 时,单位是Kb、Mb、Gb

autoindex_localtime on;
默认为 off,显示的文件时间为GMT时间。
设置为 on,则时间为文件的服务器时间。

        location / {
            index index.php index.html;
            autoindex on;
            autoindex_exact_size off;
            autoindex_localtime on;
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值