我正在尝试配置我的 apache 服务器以具有以下规则。如果请求来自 192.168.。,无需身份验证。但在其他任何地方,我都希望要求他们登录。
到目前为止我已经配置了第二部分:
别名 /Downloads “D:/Downloads” <目录“D:/Downloads”> 期权 所有指数 允许覆盖 AuthConfig 允许所有人 AuthType 基本版 AuthName“受限文件” AuthUserFile D:/Webserver/apache_auth_files/.htpasswd-users 要求用户 myuser_name </目录>
但是如何在规则中创建例外以允许 192.168.。不需要身份验证?
答案1
你正在寻找的是Satisfy Any
- 如果有人满足 IP ACL,它就会允许访问或者指令Require
,它们不必同时满足两者,因此 IP 范围之外的用户必须进行身份验证,但 IP 范围之内的用户则不需要。
尝试这个:
Alias /Downloads "D:/Downloads"
<Directory "D:/Downloads">
Options All Indexes
AllowOverride AuthConfig
Satisfy Any
Order deny,allow
Deny from all
Allow from 192.168.0.0/16
AuthType Basic
AuthName "Restricted Files"
AuthUserFile D:/Webserver/apache_auth_files/.htpasswd-users
Require user myuser_name
</Directory>