2015-02-09 90 views
0

我有一個在Tomcat上運行的Servlet + JSP應用程序。我用MOD-AJP使用這些重寫規則重定向在Tomcat阿帕奇:Servlet + mod-rewrite:HttpSession.getAttribute()返回null

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。我看起來像會話被「綁定」到某種主目錄,這些主目錄被重寫規則改變了。是否有可能強制會話忽略子目錄?我在那裏錯過了什麼?

回答

1

Tomcat會將JSESSIONID Cookie的路徑設置爲您應用的路徑。在你的情況下,cookie的路徑是/myapp。網頁瀏覽器會忽略像/subdir1這樣的網址上的此Cookie,因爲它與Cookie的路徑不匹配。

這裏是改變cookie的路徑來解決一個問題,像這樣的一些例子:How to properly set JSESSIONID cookie path behind reverse proxy

+0

謝謝。有用! – evg02gsa3 2015-02-11 14:19:43