我正在用具有不同结构的新 Web 应用程序替换旧的 Web 应用程序。
我无法更改新应用程序的虚拟目录路径,因为我的用户已经为旧应用程序的不同链接添加了书签。
假设我有一个用户,他有这个书签:
http://server/webapp/oldpage.aspx?data=somedata
我的新应用程序将驻留在同一个虚拟目录中,替换旧的,但它不再具有 oldpage.aspx,而是具有不同的布局,但它仍然需要旧 url 中的参数。
因此,我已将 404 错误重定向到 redirectfrombookmark.aspx,在那里我决定如何处理请求。
问题是,我收到的唯一参数是“aspxerrorpath=/webapp/oldpage.aspx”,而不是“data”参数,我需要它来正确处理请求。
知道如何在 404 处理程序中获取完整的“原始”网址吗?
编辑:阅读答案,看起来我没有把问题说得足够清楚:
- 用户已经为许多不同的页面添加了书签(oldpage1、oldpage2 等),我应该平等地处理它们。
- 每个旧页面的参数几乎相同,我只需要特定的。
- 我想为“新”应用程序重新使用“旧”虚拟目录名称。
- 搜索机器人等不是问题,这是具有动态内容的内部应用程序,它经常过期。
问题是 - 我是否可以在我的“新”应用程序中使用旧名称创建一堆空页面,并在其 OnLoad 中创建 Request.Redirect。即这可以使用 404 机制或 Global.asax 中的一些事件处理等来完成。