排除受保护的子url在Apache 2.4上不起作用?

我尝试从受保护的网站中排除子url“/ shop / api”。 它在Apache / 2.2.15的不同服务器上正常工作,但现在不与Apache / 2.4.7? 它总是要求基本authentication。 任何想法我做错了什么?

AuthType Basic AuthName 'Authentication required' AuthUserFile /var/www/vhosts/pwd/.htpasswd # Allow access to excluded diretories SetEnvIf Request_URI ^/shop/api/ noauth=1 Order deny,allow Satisfy any Deny from all Require valid-user Allow from env=noauth 

正如“lain”指出的那样,apache 2.4 Auth / Access控件的东西自从2.2以来已经改变了。 所以我需要修改它如下:

 AuthType Basic AuthName 'Authentication required' AuthUserFile /var/www/vhosts/pwd/.htpasswd # Allow access to excluded diretories SetEnvIf Request_URI /shop/api noauth=1 <RequireAny> Require env noauth Require env REDIRECT_noauth Require valid-user </RequireAny> 

此外,我不得不添加“需要env REDIRECT_noauth”,因为PHP使用soemredirect,这使envvariables“noauth”设置