2011-12-14 18 views
2

我们在Apache的httpd.conf配置如下:URL与几个位置匹配。如何仅从第一个地点执行指示?

<Location /app/srv> 
    ... 
    ProxyPass http://localhost:123/srv 
    ProxyPassReverse http://localhost:123/srv 

    Header edit Set-Cookie JSESSIONID srv.${ENV}.JSESSIONID 
    RequestHeader edit Cookie srv.${ENV}.JSESSIONID JSESSIONID 
</Location> 

#Following instructions do not work! 
#ProxyPass /app/srv ! 
#ProxyPass /app ! 

<Location /app > 
    ... 
    ProxyPass http://localhost:123/app 
    ProxyPassReverse http://localhost:123/app 

    Header edit Set-Cookie JSESSIONID app.${ENV}.JSESSIONID 
    RequestHeader edit Cookie app.${ENV}.JSESSIONID JSESSIONID 
</Location> 

至于我可以用上下文路径/应用/ SRV coockie JSESSIONID将被编辑两次请求的情况下看到的。
及成果将被更名为SRV。$ {ENV}。应用程序。$ {ENV} .JSESSIONID

但我需要coockie重命名为SRV。$ {ENV} .JSESSIONID

我可以在我们的测试框中看到这样的行为。
是否可以在“Location/app/srv”指令​​后停止处理?

我尝试添加指令 “的ProxyPass /应用/ SRV!” 指令后, “位置/应用/ SRV”,但它并不能帮助。

更新:
我不知道什么完整的上下文路径可能是/ app。
它可能是/ app/page1,/ app/page2等
我只知道存在/ app/srv和/ app/something上下文路径。
我想对/ app/srv和/ app/something上下文路径有不同的说明。

回答

1

你应该能够使用LocationMatch得到你想要的东西是这样的:

<LocationMatch "^/app/?$" > 

这应该匹配/应用和/应用程序/而不是/应用/ SRV。

+0

Actualy我不知道/ app的完整上下文路径。它可能是/ app/page1。我只知道可能有/ app/srv和/ app/上下文路径。我想对/ app/srv和/ app/上下文路径有不同的指示。 – 2011-12-14 13:11:02

相关问题