基于位置的 Apache 身份验证要求

基于位置的 Apache 身份验证要求

我正在尝试配置我的 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>

相关内容