2016-04-15 82 views
1

我被困在下面的情况。Apache重定向查询

我在tomcat中部署了一个名为“foo”的应用程序。我在apache级别使用mod_proxy将请求从apache重定向到tomcat。下面是它的配置。

ProxyPass  /foo https://dev.apprlc.com:8080/foo 
ProxyPassReverse /foo https://dev.apprlc.com:8080/foo 

我想在为应用程序做一些维护时向用户显示维护页面。以下是配置。

RewriteCond /etc/apache/conf/MAINT -f 
RewriteRule ^/foo$ /maintenance.html [R=302,L,NC] 

这工作得很好。但是,我想维护一个秘密URI,我可以在维护期间使用它。如https://dev.webrlc.com/maint-test。 为此我做了以下配置。

RewriteCond /etc/apache/conf/MAINT -f 
RewriteRule ^/foo$ /maintenance.html [R=302,L,NC] 

RewriteCond /etc/apache/conf/MAINT -f 
RewriteRule ^/maint-test$ /foo [PT] 

这不起作用&我可以看到它很明显。 /maint-test将重定向到/foo/foo inturn将重定向到/maintenance.html,而不是从tomcat中获取/foo应用程序。

有人能帮我解决吗?非常感谢您的帮助。

回答

1

添加P标志以使用反向代理。不要将它指向/ foo,而是直接将请求发送给tomcat。

RewriteCond /etc/apache/conf/MAINT -f RewriteRule ^/maint-test$ https://dev.apprlc.com:8080/foo [P]

+0

我试过了。但是,/ maint-test仍然重定向到/maintenance.html .. – NewLands

+0

您是否使用了确切的配置? 2个标志[P]和[PT]是不同的。上面给出的响应将使用mod_proxy将Apache的请求发送到Tomcat。您使用的配置是将请求从/ maint-test(apache)发送到/ foo(仍然在apache上)。 – nidhi

+0

是的,我用'[P]'。 – NewLands