简单的方法,使Apache请求密码,除非从指定的IP

有一个简单的方法来设置Apache指令,将:

  1. 允许无需指定IP的密码进行访问
  2. 请求任何其他IP的密码

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

我已经尝试了Apache文档和另一个论坛post提出的configuration,但它似乎只允许所有访问,不pipeIP。 我试过的configuration是这样的:

AuthType Basic AuthName "Restricted" AuthUserFile /etc/apache2/restricted_htpasswd Require valid-user Allow from [IP] Satisfy Any 

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

我之前做过这个,而且花了很长时间才弄清楚。 以下是我如何做到的:

 # 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 

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

更新:试试这个…

 AuthType Basic AuthName "Restricted" AuthUserFile /etc/apache2/restricted_htpasswd Require valid-user Order deny,allow Deny from all Allow from [IP] Satisfy any 

(先行评论,误读问题)