0

Tomcat で実行されているサーブレット + JSP アプリがあります。これらの書き換えルールを使用して、mod-ajp を使用して Tomcat で Apache をリダイレクトします。

RewriteRule ^/myapp/(.+) ajp://localhost:8009/myapp/$1 [P]
RewriteRule /myapp/(.+) ajp://localhost:8009/myapp/$1 [P]

ただし、代わりにこれらの書き換えルールを使用すると、セッションで正常に機能します。

RewriteRule ^/subdir1/subdir2/subdir3/myapp/(.+) ajp://localhost:8009/myapp/$1 [P]
RewriteRule /subdir1/subdir2/subdir3/myapp/(.+) ajp://localhost:8009/myapp/$1 [P]

HttpSession.getAttribute("nameOfMyAttribute") は null を返します。セッションは、書き換えルールによって変更されるある種のホームディレクトリに「バインド」されているようです。セッションにサブディレクトリを無視させることはできますか? 私はそこに何か欠けていますか?

4

1 に答える 1

1

Tomcat は、JSESSIONID Cookie のパスをアプリのパスに設定します。あなたの場合、Cookieのパスは/myapp. /subdir1のような URLでは、Cookie のパスと一致しないため、Web ブラウザーはこの Cookie を無視します。

次のような問題を修正するために Cookie のパスを変更する例をいくつか示します:リバース プロキシの背後にある JSESSIONID Cookie パスを適切に設定する方法

于 2015-02-10T15:04:36.957 に答える