现在,我正在使用Options -Indexes
隐藏对我网站上所有目录列表的访问权限。
然而,我发现我需要对特定文件夹进行目录访问:
../Resource/Other/
是否有任何方法可以将逻辑NOT规则应用于htaccess以允许访问某些文件夹,而默认情况下禁用目录访问?或者我是否必须从另一个角度接近它并全局启用目录列表,然后有选择地逐个文件夹禁用它们?
答案 0 :(得分:5)
在要列出的文件夹中创建一个Options +Indexes
的htaccess文件。
请务必删除所有索引文件。
答案 1 :(得分:2)
最简单的方法是全局禁用列表,然后允许列出其他列表。也就是说,默认情况下应设置虚拟主机,以便在删除“索引”选项时不列出目录。然后,您将添加一个Directory指令并设置“选项”以允许列出特定目录。
例如:
假设您有以下目录结构: / home / user / www(注意:www是文档根目录)。
进入www目录有appdir1,appdir2,app3目录,你想在你的virtualost中只列出appdir3:
<VirtualHost *:80>
DocumentRoot /home/user/www
ServerName myserver.local
<Directory /home/user/www/>
Options FollowSymLinks MultiViews
</Directory>
</VirtualHost>
在这种情况下,目录列表不可能,禁止在文档根目录下的任何目录。 但是,如果添加其他Directory指令,则可以将目录列表设置为指定目录:
<VirtualHost *:80>
DocumentRoot /home/user/www
ServerName myserver.local
<Directory /home/user/www/>
Options FollowSymLinks MultiViews
</Directory>
<Directory /home/user/www/appdir3>
Options Indexes
</Directory>
</VirtualHost>
另一方面,您可以将.htaccess文件添加到您希望允许目录列表的目录中。 在/home/user/www/appdir3/.htaccess中添加:
Options +Indexes
此外,如果您运行的是Apache 2.4版本,则应该查看<If>
指令。