首页 > 解决方案 > 在apache中如何要求IP加用户访问URL

问题描述

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

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

标签: apache.htaccessubuntuapache2

解决方案


我找到了解决方案:

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

如果您想允许请求 ip 有效或用户/密码有效,请更改<RequireAll><RequireAny>

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

推荐阅读