我知道很多问题已经涵盖了这个主题,但我无法找到正确答案。所以它就像这样
我有这样的网址
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>
我没有正确理解的任何想法。
答案 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>
感谢您的帮助。