Tuesday, March 30, 2010

.htaccess “Down For Maintenance” Page Redirect

SkyHi @ Tuesday, March 30, 2010

I recently needed to move one website from a shared web host to our internal server. After some discussion, we decided to simply add a “Site Down For Maintenance” page to the site to prevent users from submitting orders during the hosting change. Using the following .htaccess code snippet, we were able to send all users to a maintenance.html page no matter which page they requested:

Click here to copy this code to the clipboardClick here to add this snippet to CodaClick here to add this snippet to TextMateGet the raw code
1RewriteEngine On
2RewriteBase /
3RewriteCond %{REQUEST_URI} !^/maintenance\.html$
4RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]

Once we posted the maintenance.html page and .htaccess code on both the old hosting environment AND new hosting environment, we switched the DNS settings. Before making the switch, we had ported the website’s code to a “utility” domain and made adjustments so that the website would function well in the new hosting environment. Now that the DNS had been changed, we wanted to make sure that the website would function well on the new domain within the new hosting environment. Unfortunately the code above blocks EVERYONE from accessing any file besides the maintenance.html file. Fortunately my gifted IT team had the answer:

Click here to copy this code to the clipboardClick here to add this snippet to CodaClick here to add this snippet to TextMateGet the raw code
1RewriteEngine On
2RewriteBase /
3RewriteCond %{REMOTE_ADDR} !^11\.111\.111\.111
4RewriteCond %{REQUEST_URI} !^/maintenance\.html$
5RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]

The above code sends all users to maintenance.html EXCEPT those with the specified IP, which just so happened to be us. We got to test the website while others were locked out. When we were satisfied with the website, we removed the .htaccess code and the site was back up immediately!


REFERENCE

http://davidwalsh.name/htaccess-maintenance-page-redirect