需要从我的网址中删除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">将其配置为重定向您的请求。

08-17 19:23