Ну, мне удалось найти решение для этого самостоятельно, поэтому вот что я сделал:
Во-первых, кажется, что rewriteMap не поддерживает регулярные выражения, поэтому это не работает:
<add key="^tvb/" value="/tv/" />
вместо этого должно быть так:
<add key="/tvb/" value="/tv/" />
Кроме того, похоже, что переменная IIS7 REQUEST_URI изменила поведение с момента выпуска модуля Url Rewrite 2.0 (и документации).
Ранее REQUEST_URI включал только путь URL, без домена и строки запроса.
Теперь, очевидно, REQUEST_URI в IIS7 работает так же, как и в Apache, то есть он также включает строку запроса, поэтому неудивительно, что эта часть не работает:
<add input="{StaticRedirects: {REQUEST_URI}}" ... />
Вместо этого мне пришлось изменить это на:
<add input="{StaticRedirects: {SCRIPT_NAME}}" ... />
А теперь перенаправления работают как со строками запроса, так и без них!
Надеюсь, это кому-нибудь поможет.
Только что обнаружил это на сервере: IIS Rewrite, переписать карты и строки запроса .