如何在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被取消。

Interesting Posts