Переписывание URL IIS7 не используется - PullRequest
0 голосов
/ 10 марта 2012

Я перестраиваю часть существующего приложения asp, новые части собираются с помощью MVC.

Один из старых экранов, к которым я сейчас не прикасаюсь, должен указывать на новое местоположение.По этой причине я настроил перенаправление URL в IIS на уровне компьютера со следующим регулярным выражением:

^workflows/screen\.asp\?objectid=([0-9]+)(.*)

При использовании тестера я вижу, что это правильное выражение, которое ловит необходимые элементы, и янеобходимо отправить пользователей по следующему новому URL-адресу:

http://domainname/newapppart/select/{R:1}

При тестировании в моем браузере, хотя кажется, что правило перезаписи даже не действует, поскольку я все еще отправляюсь на старую страницу.

1 Ответ

1 голос
/ 13 марта 2012

Строка запроса не включена в основную строку соответствия, вы должны использовать Conditions для ее оценки.

<rule name="MyRule" stopProcessing="true">
    <match url="^workflows/screen\.asp$" />
    <conditions trackAllCaptures="true">
        <add input="{QUERY_STRING}" pattern="objectid=([0-9]+).*" />
    </conditions>
    <action type="Rewrite" url="http://domainname/newapppart/select/{C:1}" appendQueryString="false" />
</rule>
...