【问题标题】:URLRewriteFilter re-writing of params for a nicer urlURLRewriteFilter 重写参数以获得更好的 url
【发布时间】:2013-12-15 07:50:06
【问题描述】:

我尝试了几个不同的选项来重写 URL,但我似乎失败了,我不确定这是否是因为我正在尝试做的事情更复杂......

我目前在我的应用程序中有这个工作,调用这些 URL 中的任何一个,我可以访问我的页面:

http://localhost:8080/myapp/template.jsp?site=mysite1&lng=en&pageToLoad=welcome

这也可以是(注意m-)

http://localhost:8080/myapp/m-template.jsp?site=mysite1&lng=en&pageToLoad=welcome

但是,我想重新编写我的网址,使其看起来像这样:

http://localhost:8080/myapp/mysite1/en/welcome
http://localhost:8080/myapp/m/mysite1/en/welcome

我尝试过使用 JBoss 的:

org.jboss.web.rewrite.RewriteValve

现在我正在尝试:

org.tuckey.web.filters.urlrewrite.UrlRewriteFilter

但我无法弄清楚我的规则需要如何编写才能进行此更改,任何建议将不胜感激。

【问题讨论】:

    标签: regex url-rewriting jboss7.x tuckey-urlrewrite-filter


    【解决方案1】:

    哇,花了一整天的时间,但我终于明白了。可能有一种改进的方法,但这就是我的工作,我不会自己调整它,直到它被提交给 git :)

    <rule>
        <from>^([/m])([a-z]*)/(en|it)/([a-z]*)(?!.)</from>
        <to>/template.jsp?site=$2&amp;lng=$3&amp;pageToLoad=$4</to>
    </rule>
    
    <rule>
        <from>m/([a-z]*)/(en|it)/([a-z]*)(?!.)</from>
        <to>/m-template.jsp?site=$1&amp;lng=$2&amp;pageToLoad=$3</to>
    </rule>
    
    
    <outbound-rule>
        <from>([^\r]*)/template\.jsp\?site=([a-z]*)&amp;lng=(en|it)&amp;pageToLoad=([a-z]*)</from>
        <to>%{context-path}/$2/$3/$4</to>
    </outbound-rule>
    
    <outbound-rule>
        <from>([^\r]*)/m-template\.jsp\?site=([a-z]*)&amp;lng=(en|it)&amp;pageToLoad=([a-z]*)</from>
        <to>%{context-path}/m/$2/$3/$4</to>
    </outbound-rule>
    

    希望这对其他人有所帮助。

    干杯。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-30
      • 1970-01-01
      • 2011-03-02
      • 2021-12-03
      • 2013-09-05
      相关资源
      最近更新 更多