Перезапись 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=.+)&amp;(a=.+)" />
                </conditions>
                <action type="Rewrite" url="{URL}{C1}&amp;{C2}" appendQueryString="false" />
            </rule>

Мне пришлось изучить регулярный опыт, так что это может быть плохо, хе-хе.

Тестирование регулярного выражения для извлечения необходимой мне части строки запроса

0 ответов

Другие вопросы по тегам