【问题标题】:UrlRewriteFilter matching multiple rules?UrlRewriteFilter 匹配多个规则?
【发布时间】:2011-09-24 01:28:08
【问题描述】:

我有一个很好的规则:

<rule>
    <from>^/(about|account|admin|cpanel)(\?.*)?$</from>
    <to last="true">/faces/pages/$1/$1.xhtml$2</to>
</rule>

当我在上述之后添加以下规则时,在加载与第一条规则匹配的页面时,我会收到javax.servlet.ServletException: PWC1232: Exceeded maximum depth for nested request dispatches: 20 异常。

<rule>
    <from>^/([^\?]+?)/([^\?]+?)(\?.*)?$</from>
    <to last="true">/faces/pages/$1/$2.xhtml$3</to>
</rule>

根据documentation,一旦匹配到第一条规则,就不会再处理任何规则了,因为我指定了last="true"。知道我在这里可能缺少什么吗?

【问题讨论】:

  • 该死的stackoverflow和你的任意规则。我无法将上述内容作为答案发布,至少在接下来的几个小时内都无法发布,因为我不够精英。
  • 干得好史蒂夫泰勒。您能否自行发布该问题的答案,然后接受该答案以便我们结束该问题?此外,如果他们解决了您的问题,您需要接受之前问题的答案。
  • 谢谢你提醒我这个。我通常会保持最新状态。是的,我确实接受得到满意回答的问题的答案。

标签: java url-rewriting


【解决方案1】:

在 web.xml 中,我更改了它(显示在 UrlRewriteFilter 文档中)

<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
</filter-mapping>

到这里

<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

它开始正常运行。这很奇怪,但它确实有效。

似乎不重新发明轮子的代价是花费 95% 的开发时间来处理 3rd pary 错误。 (GlassFish 是主要的罪犯。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-04
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多