2013-12-14 19 views
0

我已经尝试了几种不同的选项来重新编写的网址,但我似乎是失败了,我不知道这是否是因为我正在试图做的是什么更复杂或不...URLRewriteFilter重写

我有这个在我的应用程序目前正在,要么调用这些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 

不过,我想LIK E要重新写我的网址看起来像这样:

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 

但我做不到我不知道为什么我的规定需要写出来,以便我可以做出这样的改变,任何建议都将不胜感激。

回答

0

哇,几乎花了一整天,但我终于得到它。可能有改善的方式,但是这是我得到的工作,我不会调整它自己,直到它的承诺与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> 

希望这会帮助他人。

干杯。