![目录中的 .htaccess 使其从其父级列表中消失](https://linux22.com/image/578010/%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%20.htaccess%20%E4%BD%BF%E5%85%B6%E4%BB%8E%E5%85%B6%E7%88%B6%E7%BA%A7%E5%88%97%E8%A1%A8%E4%B8%AD%E6%B6%88%E5%A4%B1.png)
我在 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),但它也不会再出现在其父列表中。
谁能知道这是什么原因造成的?
编辑:现在我注意到,如果我输入受保护目录的 URL,然后输入密码,然后在不关闭浏览器的情况下返回列表,列表就完整了。总之,该目录是隐藏的,直到我向其提供凭据。但我只想保护它的内容,而不是它的存在!
PS:这是在 Synology 盒上运行 Apache/2.2.21 的情况。
答案1
答案是父目录应该有:
IndexOptions ShowForbidden
我花了两个小时才找到它。