Post Pic

Conditional .Htpasswd for Multi-Environment Setups

When using a Multi-Environment setup for your development process it is essential to have adequate protection from outside prying eyes, but also allow people to access your public/testing sites. This .htaccess code allows you to do that.

So a while back i set Chris over at CSS-Tricks some code for his ongoing snippet library project. This is a quick explanation of that code.

You see when you are working with a multi-environment setup that is synced via a version control system such as Git or Subversion, you need a way to keep your development environments locked down while allowing access to your public environment.

Below is some text that you will input into a .htaccess file placed in your webroot


#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

so in the above code the “testing_uri” part could be if i only wanted to allow this url through my htaccess protections (useful for paypal pings) ex “http://mysite.com/paypal/ipn”

the host part is to allow anyone through if they are requesting the code from a specific domain such as “testing.yoursite.com”. if it is “development.yoursite.com” it will not allow the user through.

here is the code on css-tricks and here is the code as a github gist

Thanks for reading and as always comments & questions are heavily encouraged!

Related Posts

Making the Switch: SVN to Git Choosing the right revision control system can make or break... Avoiding Database Overload with Memcached As you build out your application, scalability will start become... Envato Marketplace API with CodeIgniter Envato recently released an API for thier various Marketplaces. I...

Poular Posts


Leave Your Response

* Name, Email, Comment are Required