Apache2:如何限制对目录的访问,但允许访问其中的一个文件?

Nic*_*ick 5 directory deny apache-2.2

我继承了一个设计糟糕的网络应用程序,它有一个需要公开访问的文件,但该文件位于一个不应公开访问的目录中。

换句话说,我需要一种方法来阻止目录中的所有文件和子目录,但为单个文件覆盖它。

我正在尝试这个:

# No one needs to access this directly
<Directory /var/www/DangerousDirectory/>
   Order Deny,allow
   Deny from all

   # But this file is OK:
   <Files /var/www/DangerousDirectory/SafeFile.html>
      Allow from all
   </Files>
</Directory>
Run Code Online (Sandbox Code Playgroud)

但它不起作用 - 它只会阻止包括我想要允许的文件在内的所有内容。有什么建议?

Lek*_*eyn 5

# No one needs to access this directly
<Directory /var/www/DangerousDirectory/>
   Order Deny,allow
   Deny from all
</Directory>
# But this file is OK:
<Files /var/www/DangerousDirectory/SafeFile.html>
   Order Deny,Allow
   Allow from all
</Files>
Run Code Online (Sandbox Code Playgroud)

如果该目录受密码保护,Satisfy any也请添加。


Kyl*_*yle 3

OrderStackOverflow 上有一个答案应该回答这个问题,我认为嵌套指令中缺少Files

/sf/ask/437057421/