【问题标题】:How to make UrlRewrite to change my address?如何让 UrlRewrite 更改我的地址?
【发布时间】:2011-01-11 01:04:35
【问题描述】:

需要从我的网址中删除 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 并按回车(当然)我得到了一个很大的惊喜。有用。

我被重定向到 redirectPage.jsp。我的意思是我看到了那个页面。

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

这个 UrlRewrite 到底如何帮助我摆脱 jsessionid 如果我仍然在那里看到它?有任何想法吗 ?如何配置规则以帮助我看不到?

【问题讨论】:

    标签: java url-rewriting


    【解决方案1】:

    目前还不太清楚您要达到什么目标。要摆脱jsessionid,您需要处理应用程序生成的URL,而不是传入的URL,因此您需要指定&lt;outbound-rule&gt;,参见相应的示例here

    关于第二个 sn-p - 默认情况下UrlRewriteFilter 转发您的请求到新地址,而不是重定向它,所以地址栏保持不变。您可以将其配置为使用 &lt;to type = "redirect"&gt; 重定向您的请求。

    【讨论】:

    • 谢谢。我不清楚每条规则的用途……还有其他的:P
    【解决方案2】:

    几个月前在一个类似的任务中,我遇到了this article - 它帮助我摆脱了 URL 中的 jsessionid 参数带来的琐碎问题。

    【讨论】:

      猜你喜欢
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-05
      • 2017-04-02
      • 2020-01-27
      • 1970-01-01
      相关资源
      最近更新 更多