Правило перезаписи IIS не запускается, когда в URL-адресе указано имя файла и расширение

Я изо всех сил пытаюсь заставить работать правило перезаписи IIS.

Старые URL-адреса выглядят так: https://wwww.testserver.com/package.aspx?TrackingNumber=номер

Новое веб-приложение ожидает URL-адреса в следующем формате: https://www.testserver.com/package/номер

В настоящее время у меня есть следующая настройка правила, которая не работает.

<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>

Интересно, что если я удалю пакет.aspx\? из правила, URL-адреса, подобные этим https://wwww.testserver.com/oldwebsite/TrackingNumber=номер, будут сопоставляться.

В моих тестовых вызовах я заменил пакет.aspx на package.html, и эти URL-адреса также не совпадают. Похоже, что IIS игнорирует URL-адреса с именами файлов в URL-адресе.

Запуск PHP на IIS без использования программы установки веб-платформы
Запуск PHP на IIS без использования программы установки веб-платформы
Установщик веб-платформы, предлагаемый компанией Microsoft, перестанет работать 31 декабря 2022 года. Его закрытие привело к тому, что мы не можем...
Поддержка IIS для PHP
Поддержка IIS для PHP
Эта версия PHP требует наличия C++ Redistributable для VS 2019 (как минимум)
0
0
95
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать приведенное ниже правило перезаписи URL для перенаправления https://wwww.testserver.com/package.aspx?TrackingNumber=номер на https://www.testserver.com/package/номер:

<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>

Примечание. Вы можете изменить имя хоста в соответствии с вашими требованиями.

С уважением, Джалпа

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