Apache 2.4重定向循环

时间:2016-04-17 12:07:36

标签: apache .htaccess redirect

我正在尝试将每个人重定向到维护页面,但我的静态IP除外。在我的站点目录中,我有.htaccess文件,其中xx是我的ip

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

但是当我从另一个地方访问时,我得到了

ERR_TOO_MANY_REDIRECTS

在我的网站虚拟主机中我有

<VirtualHost *:80>
     ServerAdmin server@admin.com
     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 个答案:

答案 0 :(得分:1)

是的,这是一个重定向循环,因为您无条件地重定向到maintenance.html

防止重定向循环使用:

RewriteEngine On

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

这意味着,如果您的请求已经maintenance.html,则不会重定向。