我在 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
我花了两个小时才找到它。