覆盖Apache中单个位置的密码要求

时间:2011-03-12 10:46:27

标签: authentication apache

我有一个带有授权的httpd.conf,可以运行内部网站的所有部分。但是,我需要删除一个位置所需的授权。

我尝试在.htaccess中使用<Location><LocationMatch>为该位置设置“允许任意”,但它不起作用,因为它仍然要求在该位置输入密码

我的.htaccess看起来像这样:

<Location />  
AuthName     "Who are you ?"
AuthUserFile /var/www/.htpasswd
AuthType     Basic
Require valid-user
Order deny,allow
Deny from all
Allow from 192.150.18.101
Allow from 192.168.1.74
Satisfy Any
</Location>

<Location /upload/add_image>
Order allow,deny
Deny from none
Allow from all
Satisfy Any
</Location>

2 个答案:

答案 0 :(得分:0)

您是否处于这种情况(来自Apache文档http://httpd.apache.org/docs/trunk/en/mod/core.html#location):

  

何时使用

     

用于将指令应用于文件系统之外的内容。对于存在于文件系统中的内容,请使用和。例外情况是,这是将配置应用于整个服务器的简便方法。

因为:

  

最重要的是,不应使用指令来控制对文件系统位置的访问。由于几个不同的URL可能映射到相同的文件系统位置,因此可以规避这种访问控制。

否则,您可以使用<Directory>(使用正确的路径)而不是<Location>

答案 1 :(得分:0)

显然,您正在使用某种CGI来处理上传。该脚本可能位于其自己的“位置”中,该位置也需要以轻松的权限列出。

我刚用the same problem - 使用Apache 2.4 - 并且必须将具有相同(降低)authz规则的FastCGI自己的前缀(在我的情况下为/ php-fpm)添加到Locations列表中。 / p>