Apache 不会列出完整目录

Apache 不会列出完整目录

我使用家用 Linux 计算机上的 Apache 作为临时服务器,与一些朋友共享一些文件。因此,我只想要这些文件及其子目录的目录列表。我在目录参数中有一个索引选项,并且可以查看目录。问题是,只有一个子目录是可见的,而其他子目录均未列出。我拥有所有文件和目录的相同权限和所有权,但没有任何变化。如果我尝试强制进入隐藏目录,我会收到一条消息,提示我没有必要的权限。有什么帮助吗?

Directory directive from conf file:
    <Directory />
    Options Indexes FollowSymLinks
    AllowOverride None
    </Directory>
Permissions of Directory:
    drwxr-xr-x.  5 apache users 4096 Jan 22 17:17 DND
    drwxr-xr-x. 11 apache users 4096 Jan 16 08:16 Pathfinder
    -rwxr-xr-x.  1 apache users  119 Jan 19 17:30 README

Pathfinder 及其中的所有内容均显示出来,README 仅在我通过 URL 推送时才起作用。DND 不显示,当我通过 URL 推送时也不起作用。

答案1

我在托管解决方案上遇到了同样的问题,因此我无法访问“主”Apache 配置文件 - 尽管我被允许放入.htaccess我的子文件夹并Options +Indexes在那里允许。但是,即使我这样做,调用的文件README也不会列出 - 而命名的文件Readme会列出。

这告诉我,可能README在顶级 Apache 设置中的某个地方被禁用,并且可能通过IndexIgnore;问题似乎是:

回复:htaccess 能否恢复默认索引 - WebmasterWorld 上的 PHP 服务器端脚本论坛

一旦设置了 IndexIgnore,就无法从子文件夹中覆盖它。请尝试使用 order allow,deny 来覆盖它。

...我尝试了一下:

Options +Indexes
<Limit GET POST>
  order deny,allow
  deny from all
  allow from all
</Limit>
<Files "README">
  order deny,allow
  deny from all
  allow from all
</Files>

,但似乎对名为的文件也没什么帮助README- 至少在我有限的配置可能性下没有帮助。另一件事是有一个ReadmeName属性apache(例如apache2 – 在Apache中更改默认的ReadmeName - 代码日志); 这也可能造成麻烦?还有类似的问题:http - Apache 不在目录列表中显示 README.TXT 文件。我该如何启用它? - 堆栈内存溢出

无论如何,对我来说,快速的解决方法是将文件名称从全大写重命名README为混合大写......

答案2

它可能取决于您的 Linux 发行版,但在 Centos 6.X 中,默认的 Apache 配置在 /etc/httpd/conf/httpd.conf 中包含一个 IndexIgnore 指令,该指令排除所有以 README 开头的文件。

相关内容