Перезапись URL для конкретного условия с использованием QUERY_STRING в ASP.NET - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь написать правило для маршрутизации веб-сайта на определенный URL-адрес на основе определенных условий.

Например, мой веб-сайт http://www.sportStore.com/site/department/123.То, что я хочу, если я наберу http://www.sportStore.com/site/department/999, то он должен направить на https://www.sportStore.com/items/.Как это сделать?Я попробовал следующее, которое не сработало.

Код:

<rule name="Site Redirect" enabled="true" stopProcessing="true">
    <match url="site/department/(.*)" />
    <action type="Redirect" url="https://www.sportStore.com/items/" appendQueryString="false" redirectType="Permanent" />
        <conditions logicalGrouping="MatchAny">
            <add input="{QUERY_STRING}" pattern="((123)|(456)|(789)|(111)|(222)|(333))" negate="true" />
        </conditions>
</rule>

Фактические результаты:

http://www.sportStore.com/site/department/123 -> https://www.sportStore.com/items/
http://www.sportStore.com/site/department/456 -> https://www.sportStore.com/items/
http://www.sportStore.com/site/department/999 -> https://www.sportStore.com/items/

Ожидаемые результаты:

http://www.sportStore.com/site/department/123 -> http://www.sportStore.com/site/department/123
http://www.sportStore.com/site/department/456 -> http://www.sportStore.com/site/department/456
http://www.sportStore.com/site/department/999 -> https://www.sportStore.com/items/

1 Ответ

0 голосов
/ 04 декабря 2018

Попробуйте следующее правило только для перманентного перенаправления 999 отделов.Очевидно, что вы можете добавить другие идентификаторы отдела в шаблон URL-адреса:

<rule name="Site Redirect" enabled="true" stopProcessing="true">
    <match url="site/department/((999))" />
    <action type="Redirect" url="https://www.sportStore.com/items/" appendQueryString="false" redirectType="Permanent" />

</rule>
...