如何在Apache 2.2中完成“AuthType None”
http://httpd.apache.org/docs/trunk/mod/mod_authn_core.html#authtype谈到“AuthType None”,并且有一个很好的例子,正是我需要做的 – 不幸的是,它似乎是2.3 /2.4。 在2.2中是否有任何等同的function?
authenticationtypesNone禁用authentication。 启用身份validation时,通常由每个后续configuration部分inheritance,除非指定了不同的身份validationtypes。 如果authentication部分的子部分不需要authentication,则可以使用authenticationtypesNone; 在以下示例中,客户端可以在不进行身份validation的情况下访问/ www / docs / public目录:
<Directory /www/docs> AuthType Basic AuthName Documents AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require valid-user </Directory> <Directory /www/docs/public> AuthType None Require all granted </Directory>
像下面的东西在我的工作与Apache 2.2。 我从http://httpd.apache.org/docs/2.2/mod/core.html#require
<Directory /www/docs> AuthType Basic AuthName Documents AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require valid-user </Directory> <Directory /www/docs/public> # All access controls and authentication are disabled # in this directory Satisfy Any Allow from all </Directory>
你只需要设置Allow all and Satisfy Any
这对我工作:
Alias /example "/opt/example.com" <Directory "/opt/example.com"> Options None AllowOverride None Order allow,deny Allow from all Satisfy Any </Directory>
<Directory /www/docs/public> AuthType None Require all granted Satisfy Any </Directory>
这将工作
我认为你是对的:它不支持在Apache 2.2。
我会尝试在https://issues.apache.org/bugzilla/show_bug.cgi?id=10932丑陋的解决方法;
就像是:
<DirectoryMatch "^/www/docs/(?!public)"> AuthType Basic AuthName Documents AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require valid-user </Directory>
要么
<DirectoryMatch "^/www/docs/[^p][^u][^b][^l][^i][^c]"> AuthType Basic AuthName Documents AuthBasicProvider file AuthUserFile /usr/local/apache/passwd/passwords Require valid-user </Directory>
这在apache2.2上为我工作:
<Location /trac> #.... AuthType Basic AuthName "BLA domain" AuthUserFile /etc/.passwd Require valid-user Allow from all Satisfy Any </Location>
只是想添加这一点的信息:
在Apache 2.2.22上,你需要有正确的命令才能工作:
这对我的位置“/ foo / sub”不起作用:
Satisfy Any Allow from all
即在“/ foo / sub”之前定义的位置“/ foo”的authentication仍然被应用。
这对位置“/ foo / sub”有效:
Allow from all Satisfy Any
即从“/ foo / sub”之前定义的位置“/ foo”的authentication被取消。