目录中的.htaccess使它从其父母的列表中消失

我有一个运行在Linux机器上的Apache服务器(比如example.com)。 在web根目录下有一个文件夹( http://example.com/docs/ ,本地/home/me/docs ),它的子目录自动生成索引,通过.htaccess启用:

 Options +Indexes IndexOptions FancyIndexing NameWidth=* FoldersFirst IgnoreCase SuppressDescription Charset=UTF-8 SuppressHTMLPreamble 

现在, docs里面是docs/protected 。 这个子目录有它自己的.htaccess

 AuthType "Basic" AuthBasicProvider file AuthUserFile /path/to/.htpasswd #Require valid-user 

现在,这是它变得怪异的地方(对我来说):

  • 就像在注释行中一样, protected的不受密码保护(这是正常的),并且在其父母的列表中可见(也是预期的)
  • 如果我取消注释Require valid-user ,那么protected成为密码保护(如果我直接键入URL),但是它也不会再出现在其父列表中。

任何人都可以弄清楚是什么原因造成的?


编辑:现在我注意到,如果我input受保护的目录的URL,然后input密码,然后返回到列表,而不closures浏览器,列表完成。 总之,目录是隐藏的,直到我给它的凭据。 但我只想保护它的内容,而不是它的存在!


PS:这是在Synology盒子上运行的Apache / 2.2.21。

答案是父目录应该有:

 IndexOptions ShowForbidden 

我失去了两个小时的发现。