Удалить этот вопрос? Я понял, в чем проблема, и это не было ИИС... См. Мой ответ ниже для результата.
Оригинальный вопрос Я работаю над ASP.Net MVC-приложением и забегаю к странной проблеме с перенаправлением URL-адресов Rewrite и AJAX.
Я добавил следующее правило перезаписи для моего Web.config в корневом сайте.
<rewrite>
<rules>
<rule name="Account" stopProcessing="true">
<match url="^SubApp/Account/(.*)$" />
<action type="Redirect" url="Account/{R:1}" redirectType="Found" />
</rule>
</rules>
</rewrite>
Кажется, что все работает нормально, если я использую Permanent или Temporary redirectType в конфигурации, но с ошибкой с страницей ошибок HTTP Error 401.0 - Unauthorized IIS.
Когда я делаю обычный запрос GET через браузер для действия, которое запускает это правило, например. https://some-site/SubApp/Account/Settings, тогда я получаю 302 Найдено, и заголовок местоположения установлен на ожидаемый URL https://some-site/Account/Settings, и соответствующая страница отображается.
Однако, когда я делаю запрос GET через JQuery AJAX, т.е. $.get('https://some-site/SubApp/Account/Settings'), возвращаемый код состояния ответа 401 Unauthorized, но у него все еще есть соответствующий заголовок местоположения.
Содержимое ответа представляет собой стандартную страницу ошибки IIS HTTP Error 401.0 - Unauthorized.
Похоже, что все работает нормально, если я использую типы перенаправления Permanent или Temporary в конфигурации, но не работает только с Found.
/SubApp - отдельное приложение, которое находится ниже корневого сайта в /.
Что происходит?
Скриншоты
redirectType="Permanent"

redirectType="Found"

redirectType="Temporary"

Как видно из скриншотов, единственное отличие - это redirectType, указанный в Web.config.
Как вы можете видеть, переадресации происходят, как ожидалось, с исключением типа перенаправления Found, который я ожидал бы получить перенаправление ответа 302 - Found на тот же URL, что и другие.