Apache 避免对单个文件进行密码保护

Apache 避免对单个文件进行密码保护

我想保护 Apache 中的整个虚拟主机,但仍想允许公众访问单个文件。虚拟主机将所有请求代理到后端的 Tomcat 服务器。最好的方法是什么?

我尝试按如下方式设置我的虚拟主机定义,但它仍然需要我想要公开的文件的密码:

<VirtualHost *>
    ServerName example.com

    <Location / >
      Order Allow,Deny
      Allow from all
      AuthType Basic
      AuthName "Restricted Access"
      AuthUserFile /etc/apache2/secrets.htpasswd
      Require valid-user
    </Location>

    <Location /foo/bar.html>
      Order Allow,Deny
      Allow from all
    </Location>

</VirtualHost>

有什么建议么?

答案1

两个 <Location> 部分都适用于您的文件,因此它们都会按顺序进行处理。 http://httpd.apache.org/docs/2.0/sections.html 您的第二部分不会覆盖第一部分的任何内容,因此 AuthType 和 Require 指令等保持不变。

如果添加指令“满足任何”指令(http://httpd.apache.org/docs/2.0/mod/core.html#satisfy),我相信应该允许所有流量,这要归功于您的“Order Allow,Deny”和“Allow from all”。不过,您可以省略重复这两个指令。

相关内容