【问题标题】:using customErrors for vanity URLs / asp.net url redirection使用 customErrors 进行虚 URL / asp.net url 重定向
【发布时间】:2010-11-24 09:02:36
【问题描述】:

所以,来自here...

在 ASP.NET 中,您可以选择如何响应 - 它在 web.config 中作为 CustomErrors。打开它,然后重定向到一个花哨的 404 页面(也许你已经这样做了)。然后,花哨的 404 页面可能正在检查请求的查询字符串(它作为另一个查询字符串传递到自定义错误页面)以查看它是否是有效的重定向,是否存在于您的数据库中等。只需执行 Response.Redirect( ) 从那里开始。

然后schooner 写道:

谢谢,我们现在确实有 404,但我们不希望在此过程中将其检测为 404。如果可能,我们希望不直接单独处理。

..我想知道这是多么糟糕的做法。我不希望将我的“漂亮”网址放在互联网上(只是名片),并且我有一个 404-redirecting-to-a-helpful-site 代码示例,但我不想投入生产并且有一个浏览器问题,它过于重视最初的 404。谁能帮我更多地了解为什么我不想使用 customErrors / 404 将用户引导到他们真正想要的页面?

【问题讨论】:

    标签: asp.net url iis-6 http-status-code-404


    【解决方案1】:

    使用 customeErrors 作为 404 错误处理程序的主要问题是,每次 customErrors 接收错误请求而不是向浏览器返回 404 错误并让浏览器知道有错误请求时,它都会返回 302这表明页面已重新定位到您的 customErrors 页面。这对大多数用户来说还不错,因为他们不知道甚至没有注意到差异,问题在于网络爬虫确实知道差异并且他们收到的状态代码直接影响他们的索引工作方式。

    假设您在http://mysite.com/MyAwesomePageAboutStuff.aspx 有一个页面一段时间,然后有一天您决定不再需要它并删除该文件。如果 Google 或其他爬虫已经将该 URL 编入索引并在您删除它后返回该 URL,则爬虫将获得 302 状态代码而不是 404 错误,并且由于此状态代码,爬虫将更新页面的 url 以指向您的错误页面,而不是删除不存在的链接。现在,每当有人通过搜索引擎找到该网址时,他们最终都会出现在您的错误页面。

    这并不是一个真正的大问题,但从长远来看,您肯定会看到这会给您的用户带来的麻烦。

    Look here 一些确凿的数据。

    【讨论】:

    • 感谢您的回答。我认为我可以在这个项目上掷骰子,但感谢您概述了一些陷阱。
    【解决方案2】:

    我使用 404 作为处理程序创建了一个虚 url 系统。我这边不需要 302,因为 404 会动态加载内容并返回。我完全能够处理任何和所有 POST / GET 和 SERVER 数据。

    效果很好。如果您有兴趣,TarantulaHawk 已加入 SourceForge。

    【讨论】:

      猜你喜欢
      • 2018-09-05
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      相关资源
      最近更新 更多