如果您可以更改應用程序的源代碼,您可以修改它,以便您可以使用「參數」方法提取JSESSIONID。默認情況下(至少在Tomcat上),JSESSIONID不會在表單文章中傳遞,但你可以修改表單來包含它。例如,一個JSP頁面可能是這樣的:
<form action="index.jsp" method="post">
<input type="hidden" name="JSESSIONID" value="${pageContext.session.id}"/>
<input type="submit"/>
</form>
或者你可以嘗試使用不同的條件從會話cookie獲取JSESSIONID。我還沒有試過以下,但想象類似的東西可能會爲你工作:
<rule>
<name>Proxy URL with jsession ID's</name>
<note></note>
<condition type="cookie" name="JSESSIONID"/>
<from>^/([^?]*)\.htm(.*)$</from>
<to type="proxy">%{request-url};jsessionid=%{cookie:JSESSIONID}$2</to>
</rule>
有,你可能會使用其他條件來檢查會話ID是否有效(請求會話Id-有效) ,源自cookie(請求會話ID,來自cookie)或源自發布操作的URL(requested-session-id-from-url)。
我不知道你正在使用的UrlRewriteFilter的版本,但如果你看看「永久重定向包含JSESSIONID傳入的URL。」例如在下面的網址,你會看到JSESSIONID並不像其他參數POST/GET參數。
http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/3.2/guide.html
我可以強烈建議使用Firefox/Firebug的一起,以便您可以被傳遞正是一個主意,檢查你的POST請求和頭。 (我敢肯定還有其他類似的工具可以做到這一點,Fiddler 2等)。
你得到了什麼樣的錯誤? – Kraylog
與正則表達式不匹配,重寫規則不起作用 –
您的問題是您無法通過POST檢索輸入字段值? – kamaci