Apache 背后的 Tomcat:除一个之外,所有内容都重定向到维护

Apache 背后的 Tomcat:除一个之外,所有内容都重定向到维护

我需要将所有请求重定向到维护页面,但特定 URL 除外,该页面仍能让我访问正常网站。

我用 Google 搜索了一下,但没有找到任何东西。

现在我正在重定向:

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

正常情况下(因为现在它已被注释掉)我在 Apache 后面使用带有 jk_mod 的 Tomcat 6:

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

但是如何才能允许通过特定的 URL 访问正常网站呢?

答案1

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 地址或其他可唯一识别您身份的信息,则另一个选择是使用具有不同端口(例如 81)的 VirtualHost,让流量通过而不是放弃维护页面。

3) 如果您无法设置其他端口,或者这样做可能更好,请使用 ServerName 指令设置具有不同服务器名称的 VirtualHost。您甚至不必在 DNS 服务器上设置此名称,只需将其添加到计算机的 hosts 文件中即可。

相关内容