我在.htaccess中有这个要求输入密码但允许某些列入白名单的IP地址而无需身份验证。
Order deny,allow
Deny from all
AuthType basic
AuthName "Admins Only"
AuthUserFile /etc/apache/.htpasswd
Require valid-user
#replace xxx with IP allowed
Allow from xxx.xxx.xxx.xxx
Satisfy any
在RedHat上使用Apache 2.2.16。
这里发生了两件事:
是否还有其他人出现类似症状并有建议?
注意:当我删除拒绝,允许和满足规则时,auth按预期工作。
答案 0 :(得分:1)
事实证明,Satisfy any
指令正在其他几个地方得到满足。特别是在我的apache httpd.conf
文件中,以及.htaccess
的子文件夹中的DocumentRoot
。
如果您遇到与satisfy any
类似的问题,请检查可能调用.htaccess的任何其他可能位置,并注释掉任何Order deny,allow
和Allow from all
语句。使用这些命令的内容帮助我找到问题(在linux中通过ssh):
cd /www/documentroot && find -name .htaccess
或者
grep -rli 'allow from all' .
(第二个命令将搜索文件,因此需要更多时间)
或者在您的apache配置文件中找到它。请注意,如果为vhost设置了AllowOverride all
,则不必更改apache配置。