Я заменяю старое веб-приложение на новое, с другой структурой.ASP.NET 404 (страница не найдена) перенаправление с сохраненными исходными параметрами
Я не могу изменить путь к виртуальному каталогу для нового приложения, так как у меня есть пользователи, у которых есть закладки для разных ссылок на старое приложение.
Допустим, у меня есть пользователь, который имеет закладку:
http://server/webapp/oldpage.aspx?data=somedata
Мое новое приложение собирается находиться в одном виртуальном каталоге, заменяя старый, но он не имеет больше не oldpage. aspx, вместо этого он имеет разный макет, но ему все еще нужен параметр из старого URL-адреса.
Итак, я настроил перенаправление 404 ошибок на redirectfrombookmark.aspx, где я решаю, как обрабатывать запрос.
Проблема заключается в том, что единственным параметром, который я получаю, является «aspxerrorpath =/webapp/oldpage.aspx», но не параметр «data», и мне нужно, чтобы он правильно обрабатывал запрос.
Любая идея, как я могу получить полный «оригинальный» URL-адрес в обработчике 404?
EDIT: чтение ответов, похоже, что я не сделал вопрос достаточно ясен:
- Пользователей имеют закладку много различных страниц (oldpage1, oldpage2 и т.д.), и я должен обращаться с ними одинаково.
- Параметры для каждой старой страницы практически одинаковы, и мне нужны только конкретные.
- Я хочу повторно использовать «старое» имя виртуального каталога для «нового» приложения.
- Поисковые роботы и т. Д. Не являются проблемой, это внутреннее приложение с динамическим контентом, которое истекает очень часто.
Вопрос: могу ли я сделать это без создания пустых страниц в моем «новом» приложении со старыми именами и Request.Redirect в их OnLoad. То есть это можно сделать с использованием механизма 404 или обработки некоторых событий в Global.asax и т. д.
IIS 6 или 7? Это намного проще в 7. –
это IIS 6 на данный момент –
Да, вам нужно что-то вроде UrlRewritingNet для IIS6, IIS7, эта встроенная функциональность. –