Apache 2.4 似乎混合了所有内容:IP 拒绝和用户拒绝不再独立工作。
在旧版本中,我能够启用这两件事,并使用它而不会影响另一件事,例如:
deny from all
allow from ip1
allow from ip2
在apache2.4中等价的是:
require ip ip1
require ip ip2
到目前为止,一切都很好。
但是,当您的网站中有 htacess+htpasswd 时,行为并不像您预期的那样,因为它认为所需的 ip 被信任无需密码即可进入,从而分析了 ip .htaccess
,甚至最糟糕的是,ip 超出了所需列表的范围,这要.htaccess
归功于尝试登录有密码这不是 Apache 2.2 所做的!
在古代 Apache 中,允许的主机是仅有的可以尝试进行身份验证...即使允许,它仍然需要密码才能.htaccess
打开网站。
我现在可以使用 mod_acess_compat 来解决该行为...但我认为这不是一个解决方案,因为我在 Apache 2.4 上使用古老的命令...并且我担心会出现一些意外行为或弃用这个模块...
答案1
听起来你想要的是这样的:
<RequireAll>
<RequireAny>
Require ip ip1
Require ip ip2
</RequireAny>
Require valid-user
</RequireAll>