2014-10-27 50 views
0

我想用Tuckey URL重写过滤器来重写传递给Solr的查询字符串。Tuckey urlrewritefilter重写查询字符串

采用以下配置:

<urlrewrite use-query-strings="true"> 
    <rule> 
     <from>^/test1/(.*)command=(.*)clean=true(.*)$</from> 
     <to type="redirect">$1command=$2clean=false$3</to> 
    </rule> 
</urlrewrite> 

如果按预期的查询字符串不即

http://localhost/test1/command=something&clean=true&somethingelese=new 

阅读作为查询字符串,但未能这种配置工作:

http://localhost/test1?command=something&clean=true&somethingelese=new 

任何建议,将不胜感激。

谢谢

回答

2

您需要在url中包含问号。

下面是如何我已经做到了一个例子:https://github.com/KevinWorkman/StaticVoidGames/blob/master/StaticVoidGames/src/main/webapp/WEB-INF/urlrewrite.xml

但我觉得你真正想要的是这样的:

<urlrewrite use-query-strings="true"> 
    <rule> 
     <from>^/test1/\?(.*)command=(.*)clean=true(.*)$</from> 
     <to type="redirect">$1command=$2clean=false$3</to> 
    </rule> 
</urlrewrite> 
+0

谢谢。你的例子真的很有用。查看它们之后,我意识到我已经包含'use-query-strings =“true”'而不是'use-query-string =“true”',所以当使用查询字符串时,匹配的正则表达式从未匹配。 – Nick22 2014-10-27 15:39:20

+0

@ Nick22啊,很好。很高兴你把它整理出来! – 2014-10-27 15:44:29