views:

1152

answers:

4

Basically I'm about to start work on a site and I'd like something that I can add into my .htaccess file (or elsewhere) that'll work like this pseudo code: (my ip will be in place of 127.0.0.1)

if (visitors_ip <> 127.0.0.1)
    redirectmatch ^(.*)$ http://www.example.com/under-construction.html

Hopefully that makes sense...

+1  A: 

Found this via Google: .htaccess - Redirect everyone but my IP

HTH

hangy
+7  A: 

That would be something like:

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1

RewriteCond %{REQUEST_URI} !/mypage\.html$  

RewriteRule .* http://www.anothersite.com/mypage.html [R=302,L]

As Andrew points out, the %{REQUEST_URI} condition avoids infinite loop if you redirect to the same domain.

VonC
A: 

Be careful with this approach.

I've gotten burned by taking the IP based approach to limiting access, and then losing the lease on my IP address.

Of course you can always ssh into the box in question and change the .htaccess file again, but the 5 minutes of panic while you try to figure out what just happened aren't exactly fun if you aren't expecting it to happen.

I recommend instead using the .htaccess (in conjunction with an htpasswd file) to request credentials for accessing your development site.

A good example of that is here: http://aplawrence.com/foo-web/htaccess-authentication.html

Eliza
Ya thanks, good point but I won't be keeping this line up for more than a week or two.
Andrew G. Johnson
Depending on how your network is set up, your lease times could be much shorter than that.
Eliza
+2  A: 

Here's the solution I ended up using, note that it is similar to VonC's except that his caused an infinite loop if you chose to redirect to the same domain.

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_HOST} !^127\.0\.0\.1
RewriteCond %{REQUEST_URI} !/coming-soon\.html$ 
RewriteRule .* http://www.andrewgjohnson.com/coming-soon.html [R=302,L]

It should also be noted that 302 is a temporary move and should be used instead of nothing or 301.

Andrew G. Johnson
I just added your extra rewrite condition in my answer, to be thorough .
VonC