2014-10-27 3 views
0

Я пытаюсь использовать фильтр перезаписи URL-адреса Tuckey для перезаписи строки запроса, переданной в Solr.Tuckey urlrewritefilter rewrite query string

Используя следующую конфигурацию:

<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

+0

@ Nick22 Ах, хорошо поймать. Рад, что вы разобрались! –

Смежные вопросы