Apache身份验证,本地主机除外

Apache身份验证,本地主机除外,apache,authentication,Apache,Authentication,我只需要在网站的公共使用中应用HTTPAuth,但我不在本地主机上应用它。这就是我认为应该有效的.htaccess。但它不起作用-它仍然要求我提供用户/通行证。 我做错了什么 SetEnvIf Remote_Addr ^127\.0\.0\.1$ develmode <IfDefine !develmode> AuthType Basic AuthName "ADMIN" AuthUserFile /path/to/.htpasswd Require

我只需要在网站的公共使用中应用HTTPAuth,但我不在本地主机上应用它。这就是我认为应该有效的
.htaccess
。但它不起作用-它仍然要求我提供用户/通行证。
我做错了什么

SetEnvIf Remote_Addr ^127\.0\.0\.1$ develmode
<IfDefine !develmode>
    AuthType Basic
    AuthName "ADMIN"
    AuthUserFile /path/to/.htpasswd
    Require valid-user
</IfDefine>
setenif Remote\u Addr^127\.0\.0\.1$develmode
AuthType Basic
AuthName“ADMIN”
AuthUserFile/path/to/.htpasswd
需要有效用户

mod_setenif
当然已启用。

您需要查看
顺序
满足
关键字。下面是我网站上的工作示例。首先,我们告诉您,我们接受IP或用户。然后定义htpasswd文件路径,并从该文件中接受任何有效用户。最后,我们定义了哪些客户端IP地址可以在没有身份验证的情况下访问我们的web(我们拒绝所有其他IP,因此它们必须通过htpasswd进行身份验证)

#用户许可| | IP 满足任何 #使用者 AuthUserFile/var/www/munin/.htpasswd AuthGroupFile/dev/null AuthName“密码保护区” AuthType Basic 需要有效用户 #知识产权 命令拒绝,允许 全盘否定 允许从11.22.33开始。
在Apache 2.4中,
允许
拒绝
满足
不再使用,IP地址限制现在也通过
要求
完成:

AuthUserFile /path/to/.htpasswd
AuthName "Restricted Access"
AuthType Basic
Require ip 127.0.0.1
Require valid-user
如果满足任何“Require”指令,则允许该请求。如果您想要两者都需要,请将它们分组到
块中

对于本地访问的限制,您可以使用特殊语法
Require local
,而不是
Require ip 127.0.0.1


阅读更多信息:

尝试一下您是否尝试过
设置enif Remote\u Addr^127\.0\.0\.1$develmode=yes
,并且在
后面没有空格,
!如果您拒绝、允许,Apache将给出一个500错误。
AuthUserFile /path/to/.htpasswd
AuthName "Restricted Access"
AuthType Basic
Require ip 127.0.0.1
Require valid-user