urlrewriter无法正确重写URL

时间:2014-06-06 09:52:21

标签: java jsp mod-rewrite url-rewriting

我正在使用urlrewriter来重写这样的网址:

<rule>
   <from>^/([a-zA-Z\-]+)/</from>
   <to>/index.jsp?category=$1</to>
</rule>

因此,如果我点击此http://localhost:8080/website/categoryname/之类的链接,它实际上会转到网页http://localhost:8080/website/index.jsp?category=categoryname

我遇到的问题是,如果我首先点击了category1的链接,它会正确地将网址重写为http://localhost:8080/website/category1/

但是当我在category1网页上点击category2的链接时,它会附加到现有的重写网址上,如下所示:http://localhost:8080/website/category1/category2/

它看起来应该是http://localhost:8080/website/category2/

这是我的web.xml:

<filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    </filter>
  <filter-mapping>
  <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
  </filter-mapping>

为什么不能正确重写?

1 个答案:

答案 0 :(得分:0)

要解决此问题,我必须删除网页链接和规则/部分中的最后一个正斜杠from

<rule>
   <from>^/([a-zA-Z\-]+)$</from>
   <to>/index.jsp?category=$1</to>
</rule>