使用customErrors进行虚URL / asp.net url重定向

时间:2009-08-31 14:48:09

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

所以,来自here ......

  

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

然后schooner写道:

  

谢谢,我们现在确实有404,但我们希望在此过程中不要将其检测为404。我们希望在可能的情况下直接和单独处理它。

..而且我想知道这种做法有多糟糕。我不希望将我的“漂亮”URL放在互联网上(只是名片),我有一个404重定向到有用站点代码的样本,但我不想进入生产并且浏览器存在问题,认为初始404过于严肃。任何人都可以帮助我更多地了解为什么我不想使用customErrors / 404将用户引导到他们实际想要的页面?

2 个答案:

答案 0 :(得分:1)

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

考虑在http://mysite.com/MyAwesomePageAboutStuff.aspx页面有一段时间的情况,然后有一天您决定不再需要它并删除该文件。如果Google或其他某个抓取工具已将该网址编入索引并在您删除该网址后返回该网址,则抓取工具将获得302状态代码而不是404错误,并且由于此状态代码,抓取工具会更新网页的网址以指向您的网址错误页面而不是删除不存在的链接。现在,只要有人通过搜索引擎找到该网址,他们就会在您的错误页面上结束。

这不是一个很大的问题,但从长远来看,你可以肯定地看到这会给你的用户带来麻烦。

Look here获取一些确凿的数据。

答案 1 :(得分:1)

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

效果很好。如果你有兴趣TarantulaHawk在SourceForge上。