我需要在网站的公共使用中应用HTTP auth,但我不在我的localhost上应用它。这是我认为应该有效的.htaccess
。但它不起作用 - 它仍然要求我输入用户/通行证
我究竟做错了什么?
SetEnvIf Remote_Addr ^127\.0\.0\.1$ develmode
<IfDefine !develmode>
AuthType Basic
AuthName "ADMIN"
AuthUserFile /path/to/.htpasswd
Require valid-user
</IfDefine>
mod_setenvif
当然已启用。
答案 0 :(得分:26)
您需要查看order
和satisfy
个关键字。我网站上的工作示例如下。首先,我们告诉我们接受IP或USER。然后我们定义htpasswd文件路径,并接受该文件中的任何有效用户。最后,我们定义哪些客户端IP地址可以访问我们的网站而不使用auth(我们拒绝所有其他IP,因此他们必须通过htpasswd进行身份验证)。
# permit by USER || IP Satisfy any # USER AuthUserFile /var/www/munin/.htpasswd AuthGroupFile /dev/null AuthName "Password Protected Area" AuthType Basic require valid-user # IP order deny,allow deny from all allow from 11.22.33.
答案 1 :(得分:18)
在 Apache 2.4 中,import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
List<Integer> a = new ArrayList<Integer>();
List<Integer> b = new ArrayList<Integer>();
List<Integer> three= new ArrayList<Integer>();
a.add(3);
a.add(5);
a.add(1);
a.add(-2);
b.add(1);
b.add(2);
b.add(-4);
b.add(3);
}
}
,allow
和deny
不再使用,现在也使用satisfy
进行IP地址限制:
require
如果有任何&#34;要求&#34;如果满足指令,则允许该请求。如果您想要两者,请将它们分组到AuthUserFile /path/to/.htpasswd
AuthName "Restricted Access"
AuthType Basic
Require ip 127.0.0.1
Require valid-user
块中。
对于本地访问限制,您可以使用特殊语法<RequireAll>
代替Require local
了解详情: http://httpd.apache.org/docs/2.4/mod/mod_authz_core.html#require