2011-01-10 27 views
0

需要从我的网址中删除jsessionid。经过在互联网上的一些研究发现,UrlRewrite可以做到这一点。如何让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://本地主机:8080/initialPage.jsp并按下回车键,我得到一个大surprize(当然)。有用。我们将重定向到redirectPage.jsp。我的意思是我看到那个页面。

但是这里有个窍门:浏览器地址栏中的网址没有改变。

在世界上,如果我仍然能看到它,UrlRewrite如何帮助我摆脱jsessionid?有任何想法吗 ?如何配置规则来帮助我看不到?

回答

1

你不太清楚你想达到什么目的。要摆脱jsessionid,您需要处理由应用程序生成的URL,而不是传入的URL,因此您需要指定<outbound-rule>,请参阅相应示例here

关于seciond片段 - 默认UrlRewriteFilter转发您的要求,以新的地址,而不是重定向,这样地址栏保持不变。您可以使用<to type = "redirect">将其配置为重定向您的请求。

+0

thx。我的脑海里并不清楚每个规则的用途......另外还有另一件事:P – Belun 2011-01-11 08:38:17

0

在一个类似的追求一些几个月前,我曾经碰到过this article - 它帮助我摆脱通过在URL中JSESSIONID参数带来的琐碎问题。