2016-04-17 2 views
1

Я пытаюсь перенаправить всех на страницу обслуживания, за исключением моего статического IP. В моем каталоге сайтов у меня есть файл .htaccess с хх является моим IPApache 2.4 redirect loop

RewriteEngine On 
RewriteBase/
RewriteCond %{REMOTE_HOST} !^xx.xxx.xxx.xx 
RewriteRule .* /maintenance.html [R=302,L] 

Но когда я посещаю из другого места я получаю

ERR_TOO_MANY_REDIRECTS 

В моих сайтах виртуальных хостов у меня есть

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName something.com 
    ServerAlias www.something.com 
    DocumentRoot /var/www/something.com/public_html/ 
    ErrorLog /var/www/something.com/logs/error.log 
    CustomLog /var/www/something.com/logs/access.log combined 
    <Directory /var/www/something.com/public_html/> 
     Require all granted 
     AllowOverride All 
    </Directory> 
</VirtualHost> 

Любые идеи о том, как остановить цикл перенаправления?

ответ

1

Да, это цикл переадресации, поскольку вы безоговорочно перенаправляетесь на maintenance.html.

Чтобы предотвратить использование цикла редирект:

RewriteEngine On 

RewriteCond %{REMOTE_HOST} !^xx.xxx.xxx.xx 
RewriteRule !^maintenance\.html$ /maintenance.html [R=302,L,NC] 

что означает не перенаправлять, если ваш запрос уже maintenance.html.