什么是apache htaccess配置要求对除这些URL之外的所有URL进行身份验证?

时间:2010-02-16 02:53:15

标签: apache .htaccess

我需要什么htaccess lines / config来确保我的网站的所有部分(文件和URL)都受到身份验证的保护,对于给定的有限URL集合除外。例如,除了“/api/.*”之外的所有内容,如果这是有道理的。

实际身份验证可能如下所示,但这是我在指令中包装它的方式......

AuthName "Dialog prompt" AuthType 
Basic AuthUserFile
/home/site/.htpasswd Require
valid-user

感谢

2 个答案:

答案 0 :(得分:1)

您可以使用SetEnvIf<IfDefine>

SetEnvIf Request_URI ^/api/ no_auth_req
# If no_auth_req is NOT defined then require authentication
<IfDefine !no_auth_req>
    AuthName "Dialog prompt"
    AuthType Basic
    AuthUserFile /home/site/.htpasswd
    Require valid-user
</IfDefine>

答案 1 :(得分:1)

这似乎有效:

AuthUserFile /home/.htpasswd
AuthName "Password Protected"
authtype Basic
Order Deny,Allow
Satisfy any
SetEnvIf request_uri "/api/" allow_all
Deny from all
Require valid-user
Allow from env=allow_all