1

У меня есть следующее правило:Получение строки запроса при использовании Таки URL Rewrite

<rule> 
    <from>^/users/(.*)$</from> 
    <to last="true">/users.do$1</to> 
</rule> 

И я хочу, чтобы соответствовать следующему адресу:

http://localhost:8077/users/?elemsPerPage=10 

и перенаправить его на:

http://localhost:8077/users.do?elemsPerPage=10 

Проблема в том, что когда движок перезаписи URL-адресов обнаруживает "?" символ в URL-адресе, он ничего не возвращает в параметре, сопоставленном $ 1. Он также не добавляет параметры к строке запроса. Есть идеи?

+1

Обычно это делается путем добавления qsa (query-string-append) к правилу, которое, к сожалению, похоже, не поддерживается. Может быть, может помочь добавить% {QUERY_STRING}? Но это не проверено. –

+0

Спасибо за понимание, я обнаружил, что есть способ достичь этого с помощью переменных. Для строки запроса хорошим является% {строка запроса} – Fgblanch

ответ

6

Наконец я нашел способ решить эту проблему:

Правило:

<rule> 
    <from>^/users/$</from> 
    <to last="true">/users.do?%{query-string}</to> 
</rule> 
5

Существует лучший способ, попробуйте добавить потребительной строки запроса = «истина» в urlrewrite

<urlrewrite use-query-string="true">

+0

, это отлично работает .. – Abhi

+0

Это более подходящее решение. – hitec

+0

Это может быть очевидно, но это решение предполагает, что вы ожидаете эту функциональность для всех своих переписываний. – tkane2000