禁用apache 2虚拟主机中的ProxyPass规则

我在httpd.conf中有一个全局的proxypass规则

全球一级的规则

ProxyPass /test/css http://myserver:7788/test/css ProxyPassReverse /test/css http://myserver:7788/test/css 

我有一个虚拟主机

 Listen localhost:7788 NameVirtualHost localhost:7788 <VirtualHost localhost:7788> Alias /test/css/ "C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/" </VirtualHost> 

我想禁用在这个虚拟主机上应用的所有全局代理通行证规则? NoProxy似乎不工作。

(我想这样做的原因是我有以下的全局规则,如果在这个虚拟主机中应用,创build一个502代理循环

 #pass all requests to application server ProxyPass /test http://localhost:8080/test ProxyPassReverse /test http://localhost:8080/test 

我想要做的是,使用apache服务所有静态内容(如css),同时仍然代理其余的请求到应用程序服务器。

在虚拟主机中,尝试这样的事情

 <VirtualHost localhost:7788> ProxyPass /test/css ! Alias /test/css/ "C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/" </VirtualHost> 

! 说不能代理这条道路。 试一试 … ?

您也可以在您的虚拟主机configuration中尝试closuresProxyRequests 。

假设我明白你想要做什么,我会摆脱代理的东西,并使用位置或locationmatch块来捕捉对CSS的请求。 我会把这个在Apache的主站点configuration。

我猜你是代理或使用Jboss的AJP连接器。 把你的位置块之后。 你可以在这里把你的代理传递给jboss。 然后你可以将Apache的文档根目录设置到war目录的顶部。 你可能也想保留你的虚拟主机的别名。

经过一番思考,这可能会更简单

把这个放在任何虚拟主机之外的主http.conf中

Alias / test / css /“C:/jboss/server/default/deploy/test.ear/test-web-app.war/css/”命令允许,拒绝全部允许

我假设你在同一台服务器上运行这个(Jboss,apache)。 注意你可以把目录块中的path改成test-web-app.war目录,如果你还有其他你希望Apache服务的东西,可以添加更多的别名。

您可能需要将您的Proxypass调整为Jboss,以便您有一个用于JBoss处理的目录。可能只是将它放在上面的目录块