我正在使用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>
为什么不能正确重写?
答案 0 :(得分:0)
要解决此问题,我必须删除网页链接和规则/
部分中的最后一个正斜杠from
。
<rule>
<from>^/([a-zA-Z\-]+)$</from>
<to>/index.jsp?category=$1</to>
</rule>