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

Ila*_*ste 3 password ip apache-2.2

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

  1. 允许从指定 IP 无密码访问
  2. 从任何其他 IP 请求密码

我正在寻找一种通过编辑指令而不是通过设置新处理程序等高级配置来实现这一目标的方法。

我已经尝试了Apache 文档另一个论坛帖子建议的配置,但它似乎允许所有访问,而不管 IP。我试过的配置是这样的:

AuthType Basic
AuthName "Restricted"
AuthUserFile /etc/apache2/restricted_htpasswd
Require valid-user
Allow from [IP]
Satisfy Any
Run Code Online (Sandbox Code Playgroud)

这应该工作吗?(其中[IP]当然是实际IP)

nhi*_*kle 5

我以前做过这个,花了很长时间才弄明白。这是我如何做到的:

# 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
Run Code Online (Sandbox Code Playgroud)

如果用户提供身份验证或来自指定的 IP,这将允许访问。关键是“满足任何”,它告诉它必须满足这些条件中的任何一个,而不是全部。您还可以指定 IP 范围,例如Allow from 192.0.0.0/16.