需要从我的网址中删除jsessionid。在互联网上进行了一些研究后,发现UrlRewrite可以做到这一点。
因此,我为此创建了一个规则。这是xml文件(urlrewrite.xml):
<urlrewrite>
<rule>
<name>Strip SessionID</name>
<note>Strip all URLs of Session ID</note>
<from>^(.*)(;jsessionid=[a-zA-Z0-9]{32})(.*)$</from>
<to encode="false">$1$3</to>
</rule>
</urlrewrite>
问题是它不太起作用。我的规则正确吗?
我尝试调试一下。我使用了以下规则:
<rule>
<name>Strip SessionID</name>
<note>Strip all URLs of Session ID</note>
<from>initialPage.jsp</from>
<to encode="false">redirectPage.jsp</to>
</rule>
转到浏览器并输入http:// localhost:8080 / initialPage.jsp并按Enter(当然),我感到非常惊讶。有用。
我被重定向到redirectPage.jsp。我的意思是我看到了该页面。
但这是窍门:浏览器地址栏中的网址未更改。
如果我仍然在那里看到这个UrlRewrite,它如何帮助我摆脱jsessionid?有任何想法吗 ?如何配置规则以帮助我看不到?
最佳答案
尚不清楚您要实现什么目标。要摆脱jsessionid
,您需要处理应用程序生成的URL,而不是传入URL,因此需要指定<outbound-rule>
,请参见相应的示例here。
关于分段代码段-默认情况下,UrlRewriteFilter
将您的请求转发到新地址,而不重定向到新地址,因此地址栏保持不变。您可以使用<to type = "redirect">
将其配置为重定向您的请求。