![Apache 不会列出完整目录](https://linux22.com/image/1302441/Apache%20%E4%B8%8D%E4%BC%9A%E5%88%97%E5%87%BA%E5%AE%8C%E6%95%B4%E7%9B%AE%E5%BD%95.png)
我使用家用 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 开头的文件。