在asp中,response.redirect和响应状态301重定向有什么区别?

Nik*_*ela 12 asp.net

我们的asp应用程序正在迁移到新服务器,我想实现一个永久URL重定向.我知道以下两种方法,我需要了解哪一个用户超过其他什么时候?

选项1:

<%@ Language=VBScript %><% Response.Redirect "http://www.example.com" %>
Run Code Online (Sandbox Code Playgroud)

选项2:

<%@ Language=VBScript %><% Response.Status="301 Moved Permanently" 
  Response.AddHeader "Location","http://www.example.com/" %>
Run Code Online (Sandbox Code Playgroud)

谢谢,

尼基尔.

Nat*_*dek 14

Response.Redirect发出302,这是一个临时重定向.301,使用您列出的Response.AddHeader,用于永久重定向.

301和302之间的差异对于搜索引擎优化具有一定的重要性.301将保留旧位置的所有搜索排名.另一方面,如果您不希望将新页面编入索引,则可以使用Response.Redirect(302),因为引擎会将重定向视为临时.谷歌没有索引302,因为许多垃圾邮件发送者使用它来试图提高他们的排名.

由于您将永久迁移到新服务器,因此301是最佳选择.


wom*_*omp 1

Response.Redirect()(以及 301 的等效方法RedirectPermanent())在幕后做了很多事情。它检查请求的 URL 字符串,对其进行编码,调用该Redirecting事件的事件处理程序(如果有),最后调用Response.End(),这会将响应刷新回浏览器并中止当前线程。

最终,您可能不会注意到手动设置标头和调用重定向之间有太大区别。

顺便说一句,有更多(更好)的选项来处理这个问题。IIS 有一个URL 重写模块,它可以让您重定向给定的 URL,而无需将页面作为请求处理程序调用,并集中管理您的 URL,以便更轻松地管理搜索引擎。