Search code examples
apache.htaccessvirtual-directorybasic-authentication.htpasswd

Password protect a virtual directory? - .htpasswd/.htaccess


Is it possible to password protect a virtual directory (such as a wordpress category):

/c/sofas/

It looks like <Location /c/sofas/> would work in httpd_config, but not .htaccess

Is it possible? Possibly with a mod_rewrite somewhere?


Solution

  • Unfortunately <Location> directive isn't allowed in .htaccess.

    But there is an alternate neat solution using mod_setenvif.

    # set env variable SECURED if current URI is /c/sofas/
    SetEnvIfNoCase Request_URI "^/c/sofas/" SECURED
    
    # invoke basic auth is SECURED is set
    AuthType Basic
    AuthName "My Protected Area"
    AuthUserFile /full/path/to/passwords
    Require valid-user
    Satisfy    any
    Order      allow,deny
    Allow from  all
    Deny from env=SECURED