我正在用一个具有不同结构的新Web应用程序替换旧的Web应用程序.
我无法更改新应用程序的虚拟目录路径,因为我的用户已经为旧应用程序添加了不同链接的书签.
假设我有一位拥有此书签的用户:
HTTP://server/webapp/oldpage.aspx数据= somedata
我的新应用程序将驻留在同一个虚拟目录中,替换旧的应用程序,但它不再是oldpage.aspx,而是具有不同的布局,但它仍然需要来自旧URL的参数.
所以,我已经设置将404错误重定向到redirectfrombookmark.aspx,在那里我决定如何处理请求.
问题是,我收到的唯一参数是"aspxerrorpath =/webapp/oldpage.aspx",而不是"data"参数,我需要它来正确处理请求.
知道如何在404处理程序中获取完整的"原始"URL吗?
编辑:阅读答案,看起来我没有提出足够明确的问题:
用户已经为许多不同的页面(oldpage1,oldpage2等)添加了书签,我应该平等地处理它们.
每个旧页面的参数几乎相同,我只需要一个特定的参数.
我想重新使用"新"应用程序的"旧"虚拟目录名称.
搜索机器人等不是一个问题,这是带有动态内容的内部应用程序,它经常过期.
问题是 - 我可以这样做,而不是在我的"新"应用程序中使用旧名称创建一堆空页面,并在其OnLoad中创建Request.Redirect.即可以使用404机制或Global.asax中的某些事件处理等来完成.
对于搜索引擎优化的目的,你应该永远在一个404错误重定向.404应该是一个死胡同,有一些有用的信息,如何找到你正在寻找的页面,如站点地图.
你应该使用301,永久移动.这允许搜索机器人更新其索引而不会丢失分配给原始页面的页面排名,
请参阅:http://www.webconfs.com/how-to-redirect-a-webpage.php,了解如何编写此类响应的代码.