让 Apache 询问密码的简单方法,除非来自指定的 IP

让 Apache 询问密码的简单方法,除非来自指定的 IP

有没有一种简单的方法来设置 Apache 指令:

  1. 允许指定 IP 无需密码访问
  2. 从任何其他 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

(删除先前的评论,误读了问题)

相关内容