2011-12-14 9 views
2

URLは複数の場所と一致します。どのように最初の場所からのみ指示を行うには?私たちは、Apacheのhttpd.confに設定を次のようしている

<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を要求した場合に見ることができるように2回に編集されます。
そして、その結果にSRVに変更されます。$ {ENV} .APP。$ {ENV} .JSESSIONID

しかし、私はSRVにcoockieの名前を変更する必要があります。$ {ENV} .JSESSIONID

私はこのような動作を私たちのテストボックスで見ることができます。
"Location/app/srv"ディレクティブの後で処理を停止することはできますか?

は、私は " はProxyPass /アプリ/ SRV!" ディレクティブの後に " 場所/アプリ/ SRV" 命令を追加しようとしましたが、それは解決しません。

UPDATE:
私は完全なコンテキストパスは/アプリのために何ができるかわかりません。
/app/page1、/ app/page2などになる可能性があります。
/app/srvと/ app/somethingのコンテキストパスが存在することがわかります。
そして、/ app/srvと/ app/somethingのコンテキストパスについては、別の手順が必要です。

あなたはこのように欲しいものを得るために LocationMatchを使用することができるはずです

答えて

1

<LocationMatch "^/app/?$" > 

/アプリおよび/アプリ/ではなく/アプリ/ SRVと一致する必要があります。

+0

実際には/ appの完全なコンテキストパスはわかりません。/app/page1にすることができます。私は、/ app/srvと/ app/のコンテキストパスがあることを知っています。/app/srvと/ app/のコンテキストパスについては、別の手順が必要です。 –

+0

この場合、^/app /(?! srv)との一致は、/ app /で始まり、srvでなければ一致するはずです。 – AVee

関連する問題