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