有没有一种简单的方法来设置 Apache 指令:
- 允许指定 IP 无需密码访问
- 从任何其他 IP 询问密码
我正在寻找一种通过编辑指令来实现此目的的方法,而不是通过高级配置,例如设置新的处理程序。
我已经尝试了建议的配置Apache 文档和另一个论坛帖子但它似乎允许所有访问,无论 IP 是什么。我尝试过的配置如下:
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/restricted_htpasswd
Require valid-user
Allow from [IP]
Satisfy Any
这应该可行吗?(其中 [IP] 当然是实际 IP)
答案1
我以前也做过这个,花了很长时间才搞明白。下面是我做的方式:
# Requires a valid user unless
# logged in from a specific IP address
Order deny,allow
Deny from all
AuthName "Keep out"
AuthUserFile "/path/to/your/passwd/file"
AuthType Basic
Require valid-user
Allow from 192.0.32.10
Satisfy Any
如果用户提供身份验证或来自指定 IP,则允许访问。关键是“满足任何条件”,这告诉它必须满足其中任何条件,而不是全部条件。您还可以指定 IP 范围,例如Allow from 192.0.0.0/16
。
答案2
更新:尝试一下...
AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/restricted_htpasswd
Require valid-user
Order deny,allow
Deny from all
Allow from [IP]
Satisfy any
(删除先前的评论,误读了问题)