当前位置 : 主页 > 网页制作 > HTTP/TCP >

url-rewriting – 如何使用UrlRewriteFilter从带有查询字符串的url中删除“.jsp”

来源:互联网 收集:自由互联 发布时间:2021-06-16
出于某种原因,我需要使用UrlRewriteFilter从 Spring MVC项目中的查询字符串中删除“.jsp”. 例如,我想改变 http://localhost:8080/admin/project.jsp?m_product=GAm_code1=QULQ2U 至 http://localhost:8080/admin/project?m
出于某种原因,我需要使用UrlRewriteFilter从 Spring MVC项目中的查询字符串中删除“.jsp”.

例如,我想改变

http://localhost:8080/admin/project.jsp?m_product=GA&m_code1=QULQ2U

http://localhost:8080/admin/project?m_product=GA&m_code1=QULQ2U

我尝试了各种规则,但没有成功.

例如,当我将规则设置为

<rule>
    <from>/admin/project.jsp?(.+)</from>
    <to type="redirect">/admin/project?$1</to>
</rule>

UrlRewriteFilter会改变

admin/project.jsp?m_product=GA&m_code1=QULQ2U

admin/project?p

当我使用以下规则来转义查询字符串之前的问号

<rule>
    <from>/admin/project.jsp\?(.+)</from>
    <to type="redirect">/admin/project?$1</to>
</rule>

UrlRewriteFilter不会重写URL.

非常感谢您的帮助.

如果你想使用Tuckey url重写过滤器从项目中删除扩展名(.jsp),那么它可能对你有所帮助.

From
    http://locatohost:8080/urlrewrite/feedback.jsp 
To
    http://locatohost:8080/urlrewrite/feedback
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" 
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
  <rule>
    <from>^/?([a-z]+)$</from>
    <to>/$1.jsp</to>
  </rule>
</urlrewrite>

如果你想反过来(意思是你想从页面超链接中删除.jsp),那么使用下面的规则

<outbound-rule>
    <from>^/?([a-z]+)(.(jsp|jspx))$</from>
    <to>$1</to>
  </outbound-rule>

所以当你使用

<LI><A href="complaints.htm">Complaints</A></LI>

那么它将在页面中写为

<LI><A href="complaints">Complaints</A></LI>
网友评论