Temporary redirect to maintenance page

13,361

Solution 1

You need to write rule for all request except maintenance file.

.htaccess should be:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]

Solution 2

What I do is to redirect all traffic to a maintenance.html page when it's not coming from my IP.

The first rewrite condition avoids an infinite loop.

RewriteCond %{REQUEST_URI} !/maintenance.html$ 
RewriteCond %{REMOTE_ADDR} !^172\.16\.254\.1$
RewriteRule $ /maintenance.html [R=302,L] 

Solution 3

It works, I tried it. It will redirect all requests to a maintenance page.

    <IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.000
 RewriteCond %{REQUEST_URI} !/maintenance.html$ [NC]
 RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif) [NC]
 RewriteRule .* /maintenance.html [R=302,L]
</IfModule>
Share:
13,361

Related videos on Youtube

user88975
Author by

user88975

Updated on June 04, 2022

Comments

  • user88975
    user88975 almost 2 years

    I am trying to write a rule to redirect all URLs to a temporary page so that some site updation could be done, but it ends up in an infinite loop.

      RewriteCond %{HTTP_HOST} ^(.*)mysite\.com$
      RewriteCond %{REQUEST_URI} !^(.*)temp$
      RewriteRule ^(.*)$ http://www.mysite.com/temp [R=307,L]
    

    How to check if it's a temp page?