Я изо всех сил пытаюсь заставить работать правило перезаписи IIS.
Старые URL-адреса выглядят так: https://wwww.testserver.com/package.aspx?TrackingNumber=number
Новое веб-приложение ожидает URL-адреса в этом формате: https://wwww.testserver.com/package/number
В настоящее время яиметь следующую настройку правила, которая не работает.
<rule name="Rewrite to new Package site" stopProcessing="true"> <match url="^package\.aspx\?TrackingNumber=([_0-9a-z-]+)" /> <action type="Redirect" url="https://www.testserver.com/package/{R:1}" logRewrittenUrl="true" /> </rule>
Интересная часть, если я удалю package.aspx \? из правила, urlsкак эти https://wwww.testserver.com/oldwebsite/TrackingNumber=number совпадают.
В моих тестовых вызовах я заменил package.aspx на package.html , и эти URL-адресане подходя также.Похоже, IIS игнорирует URL с именами файлов в URL.
Вы можете использовать приведенное ниже правило перезаписи URL для перенаправления https://wwww.testserver.com/package.aspx?TrackingNumber=number на https://wwww.testserver.com/package/number:
<rule name="test" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{REQUEST_FILENAME}" pattern="package(.aspx)" /> <add input="{QUERY_STRING}" pattern="TrackingNumber=(.*)" /> </conditions> <action type="Redirect" url="http://localhost:2568/package/{C:1}" appendQueryString="false" /> </rule>
Примечание: Вы можете изменить имя хоста согласно вашему требованию.
С уважением, Jalpa