Назад | Перейти на главную страницу

RewriteRule удаляет экранированный параметр

Мне нужна помощь со следующим RewriteRule:

RewriteRule ^ / iesearch /(.*)$ /jsp/search/ieaccelerators/visualsearch.jsp?q=$1 [L, PT]

Намерение состоит в том, чтобы переписать поисковые запросы из http://mydomain/iesearch/alvin+the+chip в JSP. Это отлично работает, если URL-адрес не содержит закодированных символов, таких как: http://mydomain/iesearch/alvin+%26+the+chip.

Журнал перезаписи показывает следующее: (2) механизм перезаписи init с запрошенным uri / iesearch / alvin + & + чип +

(2) перепишите '/ iesearch / alvin + the + & + chip' -> '/jsp/search/ieaccelerators/visualsearch.jsp?q=alvin+&+the+chip'

(3) разделить uri = / jsp / search / ieaccelerators / visualsearch.jsp? Q = alvin + & + the + chip -> uri = / jsp / search / ieaccelerators / visualsearch.jsp, args = q = alvin + & + the + + чип

Я бы надеялся, что% 26 будет передан вместо &.

Мне удалось отсортировать это так:

RewriteCond% {THE_REQUEST} ^ [AZ] + \ / iesearch / ([^ \] *) \ HTTP / RewriteRule ^ / iesearch / /jsp/search/ieaccelerators/visualsearch.jsp?q=%1 [NE, PT, L ]

В [B] флаг должен принудительно экранировать строку запроса, т.е.

RewriteRule ^/iesearch/(.*)$ /jsp/search/ieaccelerators/visualsearch.jsp?q=$1 [L,PT,B]