2

我正在用具有不同结构的新 Web 应用程序替换旧的 Web 应用程序。

我无法更改新应用程序的虚拟目录路径,因为我的用户已经为旧应用程序的不同链接添加了书签。

假设我有一个用户,他有这个书签:

http://server/webapp/oldpage.aspx?data=somedata

我的新应用程序将驻留在同一个虚拟目录中,替换旧的,但它不再具有 oldpage.aspx,而是具有不同的布局,但它仍然需要旧 url 中的参数。

因此,我已将 404 错误重定向到 redirectfrombookmark.aspx,在那里我决定如何处理请求。

问题是,我收到的唯一参数是“aspxerrorpath=/webapp/oldpage.aspx”,而不是“data”参数,我需要它来正确处理请求。

知道如何在 404 处理程序中获取完整的“原始”网址吗?

编辑:阅读答案,看起来我没有把问题说得足够清楚:

  1. 用户已经为许多不同的页面添加了书签(oldpage1、oldpage2 等),我应该平等地处理它们。
  2. 每个旧页面的参数几乎相同,我只需要特定的。
  3. 我想为“新”应用程序重新使用“旧”虚拟目录名称。
  4. 搜索机器人等不是问题,这是具有动态内容的内部应用程序,它经常过期。

问题是 - 我是否可以在我的“新”应用程序中使用旧名称创建一堆空页面,并在其 OnLoad 中创建 Request.Redirect。即这可以使用 404 机制或 Global.asax 中的一些事件处理等来完成。

4

4 回答 4

5

出于 SEO 的目的,您永远不应重定向 404 错误。404 应该是一个死胡同,其中包含一些有关如何定位您正在寻找的页面的有用信息,例如站点地图。

您应该使用301,永久移动。这允许搜索机器人在不丢失分配给原始页面的页面排名的情况下更新其索引,

请参阅:http ://www.webconfs.com/how-to-redirect-a-webpage.php ,了解如何编写此类响应。

于 2009-02-02T17:57:24.243 回答
2

您可以查看UrlRewritingNet组件。

于 2009-02-02T18:32:11.833 回答
1

您还应该考虑使用 Global.ascx(?extention) 文件中的一些事件来检查错误并智能地重定向。OnError 事件是您想要使用的。您将在该时间点(在 HttpContext 对象下)获得来自请求的变量,并且您可以让您的代码在那里而不是 404 工作。如果您走这条路线,请确保您正确重定向 404 以用于除 oldpage 之外的任何内容.aspx。

很抱歉,我现在没有任何明确的示例或信息,希望这将为您指明正确的方向。

于 2009-02-02T18:04:00.830 回答
0

POST 和 GET 参数仅适用于每个请求。如果您已经知道旧页面的名称 (OldPage.aspx),为什么不在其中添加自定义重定向?

于 2009-02-02T17:50:27.970 回答