URL重写JSP

时间:2014-03-24 04:56:19

标签: jsp url rewrite tuckey-urlrewrite-filter

我知道很多问题已经涵盖了这个主题,但我无法找到正确答案。所以它就像这样

我有这样的网址

localhost:8080/web/Area.jsp?name=food

我想实现以下更好的SEO

localhost:8080/web/food-loc-hyd

Note: 
food is a input which has 1000's of variants like apple,dish,etc.

-loc-hyd is a static keyword and is added to every food

我尝试了来自tuckey的URL重写过滤器,但我没有得到正确的组合。我上面的名字参数有数千个不同的变量可以作为输入给出,所以我试过这样的事情。

<rule><from>^/*-loc-hyd</from>

<to>/Area.jsp?name=*</to></rule>

我有类似的请求需要清理,看起来像这样

从:

localhost:8080/web/Area.jsp?name=food&address=ind

为:

localhost:8080/web/food-loc-hyd/ind

请指导如何去做。

谢谢,我开始了。我已经完成了上述工作,并在一定程度上发挥了作用。我的导航就像面包屑结构,所以就像这样

localhost / web / loc其中loc是一个变量,所以我有以下内容并且它可以工作:

Rule 1:
     <from>^/([^-]+?)</from>
     <to>/Area.jsp?name=$1</to>

现在,当用户打开/ hyd时,我将他发送到/ hyd / app然后转到/ hyd / app / lic,其中app和lic都是变量,所以我做了类似这样的事情:

Rule 2:
    <from>^/([^-]+?)/([^-]+?)</from>
         <to>/app.jsp?name=$1&app=$2</to>

规则1和规则2正在运作,但下面的规则3不起作用,它由规则1处理。

Rule 3:
    <from>^/([^-]+?)/([^-]+?)/([^-]+?)</from>
         <to>/lic.jsp?name=$1&app=$2&lic=$3</to>

我没有正确理解的任何想法。

2 个答案:

答案 0 :(得分:1)

网址重写过滤器通过正则表达式工作,你需要为变量捕获组,而不仅仅是一个星。

类似的东西:

<rule>
 <from>^/([^-]+?)-loc-hyd/(.+?)$</from>
 <to>/Area.jsp?name=$1&address=$2</to>
</rule>

如果你不明白这意味着什么,你需要研究Java的regex syntax

答案 1 :(得分:0)

我已经找到了解决方案,我在urlrewrite.xml中更改了订单并在我的网站http://www.citypincode.in上实现了

这是我在urlrewrite.xml中完成的顺序,它运行正常:

<from>^/([^-]+?)/([^-]+?)</from>
         <to>/app.jsp?name=$1&app=$2</to>


<from>^/([^-]+?)</from>
     <to>/Area.jsp?name=$1</to>

<from>^/([^-]+?)/([^-]+?)</from>
         <to>/app.jsp?name=$1&app=$2</to>

感谢您的帮助。