htaccess exclude one url from Basic Auth

前端 未结 8 1721
失恋的感觉
失恋的感觉 2020-11-30 20:54

I need to exclude one Url (or even better one prefix) from normal htaccess Basic Auth protection. Something like /callbacks/myBank or /callbacks/.*

8条回答
  •  难免孤独
    2020-11-30 21:25

    Using SetEnvIf, you can create a variable when the request starts with some path, then use the Satisfy Any directive to avoid having to login.

    # set an environtment variable "noauth" if the request starts with "/callbacks/"
    SetEnvIf Request_URI ^/callbacks/ noauth=1
    
    # the auth block
    AuthName "Please login."
    AuthGroupFile /dev/null
    AuthType Basic
    AuthUserFile /xxx/.htpasswd
    
    # Here is where we allow/deny
    Order Deny,Allow
    Satisfy any
    Deny from all
    Require valid-user
    Allow from env=noauth
    

    The allow/deny chunk of directives says that deny access for EVERYONE, except when there is a valid-user (successful BASIC auth login) or if the noauth variable is set.

提交回复
热议问题