I'm upgrading a website and I use this .htaccess file to show maintenance page:
#MAINTENANCE-PAGE REDIRECT
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 # Bogus IP address for posting here
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.0 # Bogus IP address for posting here
RewriteCond %{REQUEST_URI} !^/maintenance\.html$
RewriteRule ^(.*)$ http://www.mysite.no/maintenance.html [R=307,L]
This opens the maintenance page for all users except the two IP addresses I've added.
They get an Internal Server Error
. I've used thesame script on another site, and that worked fine.
Looking at the error log, I see the following:
/var/www/vhosts/mysite.no/httpdocs/.htaccess: RewriteCond: bad flag delimiters
If I remove my .htaccess file, I can work with my site just fine.
My site is hosted on a VPN using CentOS 5.
How can I fix this problem?
Best Answer
I believe you have to use the
[OR]
flag to chain rules like this:In the apache docs, it's at the bottom of this section as an example: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond
Also, you can use the
RewriteLog
andRewriteLogLevel 3
directives to possibly gain some more insight.