redirectMode="ResponseRewrite" не работает

У меня есть 404.aspx для управления запросами к несуществующим страницам. Он отлично работает на IIS6, но теперь мне нужно перенести его на IIS7. Сайт использует.net 2.0 classic 32bit AppPool, без MVC.

non-.net запросы как test.com/NotExist управляются хорошо, но у меня есть проблема с URL, как test.com/NotExist.aspxЯ настроил страницы.net err следующим образом:

<customErrors defaultRedirect="/404.aspx" mode="On">
   <error redirect="/404.aspx" statusCode="404" />
</customErrors>

и это работает, но конвертирует URL в test.com/404.aspx?aspxerrorpath=/NotExist.aspx

Я должен избегать этого изменения URL, поэтому я погуглил, я должен изменить строку:

<customErrors defaultRedirect="/404.aspx" mode="On" redirectMode="ResponseRewrite">

Но он показывает сообщение об ошибке по умолчанию вместо результата:

Ошибка сервера в приложении '/' Этот ресурс не может быть найден. Описание: HTTP 404. Ресурс, который вы ищете (или одна из его зависимостей), мог быть удален, изменилось его имя или временно недоступен. Пожалуйста, просмотрите следующий URL и убедитесь, что он написан правильно.

Я проверил https://stackru.com/questions/12463412/responserewrite-redirect-mode-is-not-working и CustomErrors не работает, когда установки redirectMode="ResponseRewrite" и customErrors с redirectMode="ResponseRewrite" не работают на общих хостинг но не везет.

Пожалуйста помоги.

1 ответ

Решение

Сопоставления обработчиков -> *.aspx (у меня их четыре, один с именем "PageHandlerFactory-ISAPI-2.0") -> изменить -> Запретить ограничения.

У нас был выключен флажок "вызывать обработчик, только если.....". Теперь он включен и выбрана радиокнопка "Файл".

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