Перезапись IIS на основе части строки запроса
Заранее благодарю за любую помощь.
У меня проблема с перезаписью в IIS. Мне нужно переписать соответствие только первой переменной строки запроса. Это страница отображения продукта, где номер продукта указан в переменной строки запроса c=, но остальные значения могут меняться в зависимости от параметров отображения.
URL-адрес, с которого я хочу переписать,
www.aaa.com/dynamic/DisplayProduct.aspx?c=123456&a=1&b=2&c=3
Мне нужна запись в файле rewritemaps
/dyanmic/DisplayProduct.aspx?c=123456 сопоставлен с /Product_Description
а затем добавьте к нему остальную часть строки запроса. Его также необходимо перенаправить обратно.
На данный момент у меня есть эти правила, которые нормально соответствуют всему URL-адресу и строке запроса.
<rule name="Apply redirects from rewritemaps.config">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{Redirects:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" redirectType="Temporary" />
</rule>
<rule name="Apply rewrites from rewritemaps.config" enabled="true" stopProcessing="false">
<match url=".*" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{Rewrites:{REQUEST_URI}}" pattern="(.+)" />
</conditions>
<action type="Rewrite" url="{C:1}" appendQueryString="true" />
</rule>
Я также попробовал этот, который находит нужную мне переменную строки запроса, но после этого я теряюсь :(
<rule name="Rewrite Products" enabled="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{Rewrites:{REQUEST_URI}}" pattern="(c=.+)&(a=.+)" />
</conditions>
<action type="Rewrite" url="{URL}{C1}&{C2}" appendQueryString="false" />
</rule>
Мне пришлось изучить регулярный опыт, так что это может быть плохо, хе-хе.
Тестирование регулярного выражения для извлечения необходимой мне части строки запроса