Я заменяю старое веб-приложение новым, с другой структурой.
Я не могу изменить путь виртуального каталога для нового приложения, поскольку у меня есть пользователи, которые добавили в закладки разные ссылки на старое приложение.
Допустим, у меня есть пользователь, у которого есть эта закладка:
http://server/webapp/oldpage.aspx?data=somedata
Мое новое приложение будет находиться в том же виртуальном каталоге, заменив старое, но у него больше нет oldpage.aspx, вместо этого у него другое расположение, но ему все еще нужен параметр из старого URL.
Итак, я установил перенаправление ошибок 404 в redirectfrombookmark.aspx, где я решаю, как обрабатывать запрос.
Проблема в том, что единственный параметр, который я получаю, это "aspxerrorpath = / webapp / oldpage.aspx", но не параметр "data", и он мне нужен для правильной обработки запроса.
Есть идеи, как получить полный "оригинальный" URL в обработчике 404?
РЕДАКТИРОВАТЬ: читая ответы, похоже, я не достаточно ясно понял вопрос:
- Пользователи отметили много разных страниц (oldpage1, oldpage2 и т. Д.), И я должен обрабатывать их одинаково.
- Параметры для каждой старой страницы почти одинаковы, и мне нужны только конкретные.
- Я хочу повторно использовать «старое» имя виртуального каталога для «нового» приложения.
- Поисковые роботы и т. Д. Не представляют проблемы, это внутреннее приложение с динамическим контентом, срок действия которого истекает очень часто.
Вопрос в том, могу ли я сделать это без создания пачки пустых страниц в моем «новом» приложении со старыми именами и Request.Redirect в их OnLoad. То есть это можно сделать с помощью механизма 404 или некоторой обработки событий в Global.asax и т. д.