У меня есть прикрепленные правила перенаправления и перезаписи. По сути, www.foo.com/vehicles/vehicle-detail.aspx?stockno=123456 переписан на www.foo.com/123456. Это работает, как и ожидалось, с правилами, которые у меня есть. Теперь, если я попытаюсь перейти на страницу, которая не существует (например, www.foo.com/test.aspx), правило переписывания будет квалифицировано, и IIS попытается перенаправить запрос на www.foo.com/vehicles/vehicle-detail. aspx (без строки запроса). На странице vehicle-detail.aspx у меня есть код для перенаправления на домашнюю страницу, если в строке запроса нет действительного stockno, так что это то, что происходит. Я не уверен, как исправить правило (я), чтобы условие не считалось истинным. Я приложил правила и снимки экрана с отслеживанием невыполненных запросов. Я включил просмотр правила запроса / перезаписи.
<rule name="Redirect StockNo" enabled="true" stopProcessing="true">
<match url="^Vehicles/Vehicle-Detail\.aspx$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_METHOD}" pattern="^POST$" negate="true" />
<add input="{QUERY_STRING}" pattern="^stockno=([^=&]+)$" />
</conditions>
<action type="Redirect" url="{C:1}" appendQueryString="false" />
<rule name="Rewrite StockNo" enabled="true" stopProcessing="true">
<match url="^([^/]+)/?$" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="Vehicles/Vehicle-Detail.aspx?stockno={R:1}" />
![enter image description here](https://i.stack.imgur.com/pTt94.png)
![enter image description here](https://i.stack.imgur.com/TUTZG.png)
![enter image description here](https://i.stack.imgur.com/FmFk1.png)