Apache之后的Tomcat:将所有东西都redirect到除了一个之外的维护

我需要将所有请求redirect到一个维护页面,除了特定的URL,仍然可以让我有可能访问正常的网站。

我GOOGLE了,但我没有find任何东西。

现在我正在redirect:

RewriteEngine on RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f RewriteCond %{REQUEST_FILENAME} !/maintenance.html RewriteRule ^.*$ /maintenance.html [L] 

通常(因为现在它被注释掉了)我使用jk_mod的Apache后面的Tomcat 6:

 <IfModule mod_jk.c> JkMount / worker1 JkMount /* worker1 </IfModule> 

但是如何授予通过特定的URL访问正常的网站的可能性呢?

1)当请求IP地址是你的时候,你可以使你的重写条件不适用。

如:

 RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$ RewriteCond %{REMOTE_ADDR} !^87\.65\.43\.21$ RewriteCond %{REQUEST_URI} !^sorry\.html RewriteRule .* /sorry.html 

2)如果你没有一个静态的IP地址或其他唯一可识别的东西,那么另外一个select是使用一个不同的端口(如81)的虚拟主机,让stream量通过而不是放弃维护页面。

3)如果你不能设置一个不同的端口,或者这可能会更好,使用ServerName指令设置一个不同的服务器名称的VirtualHost。 您甚至不必在DNS服务器上设置该名称,只需将其添加到计算机的主机文件即可。