重定向错误太多


Too many redirects error

我的。htaccess文件有3个重写规则,但我面临重定向问题:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REMOTE_ADDR} =IP TO BLOCK GOES HERE
RewriteCond %{REMOTE_ADDR} =ANOTHER IP TO BLOCK GOES HERE
RewriteCond %{REQUEST_URI} !^/blocked
RewriteRule ^(.*)$ http://www.myhost.com/blocked [R=307,L]
RewriteCond %{REMOTE_ADDR} !=AUTHORIZED IP HERE
RewriteCond %{REQUEST_URI} !^/maintenance
RewriteRule ^(.*)$ http://www.myhost.com/maintenance [R=307,L]
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php

问题是,如果一个被阻止的IP试图访问网站时,它是在维护,我收到一个"不正确的重定向"错误。如果IP是被拒绝的IP之一,如何停止重写处理?

您可以使用:

RewriteEngine On
RewriteBase /
RewriteCond %{REMOTE_ADDR} =IP TO BLOCK GOES HERE
RewriteCond %{REMOTE_ADDR} =ANOTHER IP TO BLOCK GOES HERE
RewriteCond %{REQUEST_URI} !^/blocked
RewriteRule ^ http://www.myhost.com/blocked [R=307,L]
RewriteCond %{REMOTE_ADDR} !=AUTHORIZED IP HERE
RewriteCond %{REQUEST_URI} !^/(?:maintenance|blocked)
RewriteRule ^ http://www.myhost.com/maintenance [R=307,L]
RewriteCond %{HTTP_HOST} !^www'.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 500 /500.php