在apache中如何要求IP加用户访问URL

In apache how to require IP plus user to access URL

在具有 ubuntu 的 apache2 中,如何配置特定 IP + 用户只能访问的位置 (URL)。我使用下面的代码,但它总是会询问用户名和密码,即使我的 ip 不匹配。如果我的 ip 不匹配,那么它应该阻止(403)我的请求,如果我的 ip 匹配,则询问用户名和密码,如果用户名和密码有效,则在用户可以访问该位置后(URL),否则阻止(403) 那个位置(URL).

<Location /secret-url/> Require ip <IPV4> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require user <USERNAME> </Location>

我找到了解决方案:

<Location /secret-url/>
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/apache2/.htpasswd
    <RequireAll>
      Require ip <IPV4>
      Require user <USERNAME>
    </RequireAll>
</Location>

如果你想允许请求 ip 有效或 user/password 有效则将 <RequireAll> 更改为 <RequireAny>:

<Location /secret-url/>
    AuthType Basic
    AuthName "Restricted Content"
    AuthUserFile /etc/apache2/.htpasswd
    <RequireAny>
      Require ip <IPV4>
      Require user <USERNAME>
    </RequireAny>
</Location>