Tuckey urlrewritefilter переписывает строку запроса

Я пытаюсь использовать фильтр перезаписи URL-адреса Tuckey, чтобы переписать строку запроса, переданную Solr.

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

<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

Мы ценим любые предложения.

Спасибо,


person Nick22    schedule 27.10.2014    source источник


Ответы (1)


Вы должны включить вопросительный знак в 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>
person Kevin Workman    schedule 27.10.2014
comment
Спасибо. Ваши примеры действительно полезны. Просмотрев их, я понял, что я включил «use-query-strings = true» вместо «use-query-string = true», поэтому мое соответствующее регулярное выражение никогда не совпадало, когда использовалась строка запроса. - person Nick22; 27.10.2014