IIS Mod-Rewrite QUERY_STRING / QSA проблемы - PullRequest
0 голосов
/ 21 октября 2011

Мы используем IIS Mod-Rewrite от MicoNovae для переписывания IIS в Windows 2003.

Мы используем команду RewriteRule, например: http://www.site.com/section35/page1/tiling-tools/ будет выглядеть так: http://www.site.com/search.asp?section=35&page=1&model=tiling-tools

Теперь у меня есть ситуация, когда мне нужно добавить строку запроса к переписанному URL, например: http://www.site.com/section35/page1/tiling-tools/?myid=dskajh34kjhsvkjh34 надо стать http://www.site.com/search.asp?section=35&page=1&model=tiling-tools&myid=dskajh34kjhsvkjh34

Мои правила:

RewriteEngine On
RewriteRule /\.htaccess$ - [F]
RewriteRule ^/section([^/]+)/page([^/]+)/?([^/]*)/?([^/]*)/?([^/]*)/$ /search_results.asp?section=$1&page=$2&model=$3 [L]

Я безуспешно пробовал следующее:

RewriteRule ^/section([^/]+)/page([^/]+)/?([^/]*)/?([^/]*)/?([^/]*)/$ /search_results.asp?section=$1&page=$2&model=$3&%{QUERY_STRING} [L]

RewriteRule ^/section([^/]+)/page([^/]+)/?([^/]*)/?([^/]*)/?([^/]*)/$ /search_results.asp?section=$1&page=$2&model=$3 [L,QSA]

Предложения будут оценены (потому что это сводит меня с ума!)

Спасибо!

1 Ответ

1 голос
/ 22 октября 2011

Помимо добавления строки запроса, я даже не уверен, что ваше правило перезаписи работает вообще?!?Я бы предложил использовать что-то вроде этого:

RewriteRule ^/section([0-9]+)/page([0-9]+)/(.*)/    /search_results.asp?section=$1&page=$2&model=$3    [NC,L,QSA]

Флаг NC делает ваше правило перезаписи без учета регистра, а флаг QSA добавляет необходимую строку запроса.

...