Мне нужна помощь со следующим 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]