我们的asp应用程序正在转移到新服务器,我想实现一个永久URL重定向。我知道以下两种方法,我需要了解哪一个用户超过其他什么时候?
选项1:
<%@ Language=VBScript %><% Response.Redirect "http://www.example.com" %>
选项2:
<%@ Language=VBScript %><% Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.example.com/" %>
谢谢,
尼基尔。
Response.Redirect发出302,这是一个临时重定向。 301,使用您列出的Response.AddHeader,用于永久重定向。
301和302之间的差异对于搜索引擎优化具有一定的重要性。 301将保留旧位置的所有搜索排名。另一方面,如果您不希望将新页面编入索引,则可以使用Response.Redirect(302),因为引擎会认为重定向是临时的。谷歌没有索引302,因为许多垃圾邮件发送者使用它来试图提高他们的排名。
由于您将永久迁移到新服务器,因此301是最佳选择。
Response.Redirect()
(和等效方法 RedirectPermanent()
对于301)在幕后做了很多事情。它null检查请求的URL字符串,对其进行编码,调用事件处理程序 Redirecting
如果有任何事件,最后调用 Response.End()
,将响应刷新回浏览器并中止当前线程。
最终,您可能不会注意到手动设置标头和调用重定向之间存在很大差异。
顺便提一下,有更多(和更好)的选择来处理这个。 IIS有一个 URL重写模块,这将允许您重定向给定的URL,而无需将您的页面作为请求处理程序,并集中管理您的URL,以便更轻松地管理搜索引擎。
Response.Redirect发出302,这是一个临时重定向。 301,使用您列出的Response.AddHeader,用于永久重定向。
301和302之间的差异对于搜索引擎优化具有一定的重要性。 301将保留旧位置的所有搜索排名。另一方面,如果您不希望将新页面编入索引,则可以使用Response.Redirect(302),因为引擎会认为重定向是临时的。谷歌没有索引302,因为许多垃圾邮件发送者使用它来试图提高他们的排名。
由于您将永久迁移到新服务器,因此301是最佳选择。
Response.Redirect()
(和等效方法 RedirectPermanent()
对于301)在幕后做了很多事情。它null检查请求的URL字符串,对其进行编码,调用事件处理程序 Redirecting
如果有任何事件,最后调用 Response.End()
,将响应刷新回浏览器并中止当前线程。
最终,您可能不会注意到手动设置标头和调用重定向之间存在很大差异。
顺便提一下,有更多(和更好)的选择来处理这个。 IIS有一个 URL重写模块,这将允许您重定向给定的URL,而无需将您的页面作为请求处理程序,并集中管理您的URL,以便更轻松地管理搜索引擎。
默认情况下,正常重定向使用HTTP 状态302。重定向 状态301 不会被searchbots(如Googlebot)索引,如果是,它们将从现有索引中删除。如果要将旧URL“更新”为较新的URL,则非常有用。搜索机器人无论如何都会将状态为302的重定向编入索引,因此您可能最终会在搜索结果中出现污染。您通常使用状态302作为例如PRG模式和状态301 常驻 重定向就像你现在正在做的那样。
Response.Redirect向浏览器发送“302 - 暂时移动”状态代码,根据您正在做什么,这可能会也可能不会。如果您要重定向到内容的正确位置,则需要执行301重定向,因为搜索引擎无法针对302进行正确爬网。