Модуль IIS Rewrite для сопоставления строк запросов

Я использую модуль перезаписи IIS на IIS7.5. Мои сопоставления находятся в текстовом файле в структуре:

[old url], [new url]

Итак, что-то вроде этого работает:

products/abc, http://test.com/new/products/abc

Это использует следующее правило в моем web.config

 <rule name="FileMapProviderRule" stopProcessing="true">
      <match url="(.*)" />
      <conditions>
        <add input="{FileMapProvider:{R:1}}" pattern="(.+)" />
      </conditions>
      <action type="Redirect" url="{C:1}" redirectType="Permanent" />
 </rule>

Каким будет мое правило, если я хочу, чтобы строки запроса также передавались? Итак, я хочу, чтобы это работало:

products?sku=123, http://test.com/new/products/123
products?sku=789, http://test.com/new/products/789

person LordHits    schedule 17.11.2012    source источник


Ответы (1)


Я решил это по следующему правилу:

<rule name="Products" patternSyntax="Wildcard" stopProcessing="true">
    <match url="products" />
    <conditions>
        <add input="{QUERY_STRING}" pattern="sku=*" />
    </conditions>
    <action type="Redirect" url="http://test.com/new/products/{C:1}" appendQueryString="false" redirectType="Permanent" />
</rule>
person LordHits    schedule 20.11.2012