隐藏索引文件夹中的所有目录,但不隐藏其内容

隐藏索引文件夹中的所有目录,但不隐藏其内容

在我的服务器上,我想创建一个对普通用户隐藏的目录,但可以通过链接访问而无需身份验证。

目前我已经这样设置:

  • 在虚拟主机配置中,我允许覆盖索引选项
  • 在我的服务器上,我有一个文件夹h,名为隐藏
  • h与我在同一级别的.htaccess文件如下:IndexIgnore h
  • .htaccess在另一个IndexIgnore *

但是,这也隐藏了 的内容h/abc/,而我并不需要。我尝试输入IndexIgnore .h/abc/.htaccess但没有成功。在HTTPD 文档,我后来才知道:

多个 IndexIgnore 指令添加到列表,而不是替换忽略文件列表。默认情况下,列表包含 .(当前目录)。

有没有办法指定IndexIgnore仅对当前目录内的项目起作用,而不是递归?

或者有其他更好的方法来解决这个问题?我宁愿不要过多地触碰“全局”配置文件,尽管这是可能的。

答案1

将目录放在文档根目录之外并创建一个Alias即可实现您的目标。也就是说,假设您的文档根目录类似于/var/www/html,您将创建/var/www/private并添加(到您的全局 -- 抱歉 -- 配置):

Alias /private/ /var/www/private/

该目录不会出现在文件列表中/(因为它不包含在该目录中),但如果明确请求,它可以正常工作。

相关内容