This code is useful for multi-environment setups (staging, production, etc.) It allows you to keep your .htaccess
files in sync while maintaining an .htpasswd
on your development environment or anything but the live environment.
# allows a single uri through the .htaccess password protection
SetEnvIf Request_URI "/testing_uri$" test_uri
# allows everything if its on a certain host
SetEnvIf HOST "^testing.yoursite.com" testing_url
SetEnvIf HOST "^yoursite.com" live_url
Order Deny,Allow
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /path/to/your/.htpasswd
AuthGroupFile /
Require valid-user
# Allow valid-user
Deny from all
Allow from env=test_uri
Allow from env=testing_url
Allow from env=live_url
Satisfy any