Как получить дружественную страницу с ошибкой, чтобы заменить страницу с ошибкой asp.net для URL "WEB-INF./web.xml"?

Этот URL-адрес является частью проверки соответствия pci и помечает очень редкую возвращенную страницу ошибки asp.net, которая на действующем сайте представляет собой код состояния 500 и текст

Ошибка сервера в приложении '/'

Ошибка выполнения

Описание: исключение произошло при обработке вашего запроса. Кроме того, произошло другое исключение при выполнении пользовательской страницы ошибок для первого исключения. Запрос был прекращен.

При запуске сайта в визуальной студии я, однако, получаю 404 и текст

Ошибка сервера в приложении '/'

Этот ресурс не может быть найден.

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

Запрашиваемый URL: /WEB-INF./web.xml

Информация о версии: Microsoft .NET Framework Версия:4.0.30319; ASP.NET версия:4.0.30319.18044

Я пытался игнорировать этот URL в маршрутизации и сопоставить его с нашим 404 маршрутом /error/not-found, у нас есть пользовательские ошибки с перенаправлением по умолчанию на /error/internal, Я также пытался использовать тег местоположения, чтобы запретить доступ, блокировать его с помощью фильтрации запросов и использовать обработчик с этим путем для перехвата запроса.

Я попытался это переписать, также пробовал те же правила блокировки и перенаправления, но я все еще получаю ту же страницу ошибки asp.net. Изображение обрезано, но правило таково ^.*\./.*$ и это соответствует URL, который я пытаюсь отфильтровать (я также пытался просто WEB-INF).

переписать правило

Любая идея, как я могу получить этот URL, чтобы показать нашу пользовательскую страницу ошибки?

2 ответа

Добавление relaxedUrlToFileSystemMapping="true" на узле httpRuntime в web.config этот URL обрабатывался ASP.Net MVC, как и ожидалось.

<system.web>
  <httpRuntime relaxedUrlToFileSystemMapping="true" />
</system.web>

Вы можете использовать библиотеку переписывающего устройства Managed Fusion, расположенную здесь, она работает аналогично перенаправлению через конфигурацию Apache: http://managedfusion.com/products/url-rewriter/

Документация о том, как ее использовать, находится здесь: http://managedfusion.com/products/url-rewriter/documentation.aspx

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