Response.Redirect()vs Response.RedirectPermanent()

问题描述:

我是ASP.Net 4.0的新手,并且看到一个名为Response.RedirectPermanent()的新功能。我查了一些文章,但我无法清楚地了解Response.RedirectPermanent()的实际含义和差异,而不是Response.Redirect()Response.Redirect()vs Response.RedirectPermanent()

Gunnar Peipman

Response.Redirect()返回302到浏览器,意味着要求的资源被临时转移到其他位置。 Permanent redirect意味着浏览器从服务器获取301作为响应。在这种情况下,浏览器不再向旧URL请求相同的资源 - 它使用Location标头给出的URL。

为什么我需要检查服务器响应,如301,302?它如何永久性地将页面重定向到服务器?

301响应(RedirectPermanent)对于SEO目的非常有用。例如,您在ASP.NET WebForms中实现了一个站点,并使用ASP.NET MVC进行了重新设计。您希望通知搜索引擎该页/Catalog/ProductName.aspx变为/ products/product-name。然后,您将301从/Catalog/ProductName.aspx重定向到/ products/product-name,搜索引擎索引中的链接将被替换。 302(重定向)主要用于内部目的。例如,登录后的重定向(如果returnUrl在URL中设置)。

+0

哪一个更好用? – 2013-12-03 12:17:48

+3

取决于情况。重定向301更适合用于SEO目的。当你需要告诉搜索引擎一些页面被移动到另一个位置时。重定向302更适合应用程序流。例如,登录页面可能会重定向到它从其启动的页面。 – Stan 2013-12-04 11:45:43

+0

好的,谢谢 – 2013-12-04 11:50:38