Apache Basic Auth仅适用于具有URL路径的请求

时间:2015-10-20 11:52:32

标签: apache .htaccess basic-authentication

除了来自特定IP范围的请求和具有URL路径的URL之外,我还希望获得基本身份验证。 (在我的场景中,这些总是以.html结尾)

IP范围工作正常,但我无法获得请求以.html结束。例如:

  

http://subdomain.domain.com/test.htmlhttp://subdomain.domain.com/test/test.html

时应该允许

而不进行身份验证

  

http://subdomain.domain.comhttp://domain.com

应该被拒绝。

这是我的.htaccess中的Basic Auth块:

SetEnvIf Request_URI ".html$" auth=1

Order deny,allow
Deny from all
AuthType Basic
AuthUserFile /path/to/.htpasswd
AuthName "Login"
require valid-user
Allow from 123.456.78 env=auth
Satisfy Any

1 个答案:

答案 0 :(得分:1)

您需要2个不同的Allow行:

SetEnvIf Request_URI "\.html$" NO_AUTH

AuthType Basic
AuthUserFile /path/to/.htpasswd
AuthName "Login"
require valid-user
Satisfy Any

Order Deny,Allow
Deny from all
Allow from 123.456.78
Allow from env=NO_AUTH