tuckey urlrewrite在url-rewrite中不适用于查询变量

时间:2013-08-09 20:11:47

标签: java jsf java-ee url-rewriting glassfish

我在Glassfish的JSF中使用tuckey urlrewrite过滤器来清理url。 以下是过滤器的规则(不起作用):

    <rule>
        <from>^/user/(.*)$</from>
        <to>%{context-path}/faces/testUser.xhtml?username=$1</to>
    </rule>

我收到HTTP-404,请求的资源()不可用。

当我按如下方式给出“to”标签时,过滤器有效(即type = redirect):

   <to type="redirect">%{context-path}/faces/testUser.xhtml?username=$1</to>

另一个规则就是为前进做得很好:

    <rule> 
        <from>/home</from>
        <to>faces/index.xhtml</to>
    </rule>

以下是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 :(得分:1)

当我改变规则如下时,它工作正常:

    <rule>
        <from>^/user/(.*)$</from>
        <to>/faces/testUser.xhtml?username=$1</to>
    </rule>