301 重定向在很多地方都需要用到,也是 seo 中常见的问题。比如确定首选域或更换网站域名的时候都要用到 301 重定向。301 重定向的方法有好几种,拿 ASP 类网站来说有:首页 301 重定向和全站 301 重定向。 首页 301 重定向的方法:
[html]
<%
website=request.ServerVariables("Server_name")
' 获取当前访问的域名
if website="zzrpjc.com" then
' 判断如果你的域名如果是 icoa.cn
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.zzrpjc.com/"
' 做 301 重定向到 www.icoa.cn
end if
%>
<%
website=request.ServerVariables("Server_name")
' 获取当前访问的域名
if website="zzrpjc.com" then
' 判断如果你的域名如果是 icoa.cn
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.zzrpjc.com/"
' 做 301 重定向到 www.icoa.cn
end if
%> 或
[html]
<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,“http://www.zzrpjc.com/”
%>
<%@ Language=VBScript %>
<%
Response.Status=”301 Moved Permanently”
Response.AddHeader “Location”,“http://www.zzrpjc.com/”
%>
全站 301 重定向的方法:
[html]
<%
currentdomain= request.ServerVariables("SERVER_NAME")' 获取地址栏中当前的域名。
currenturl=request.ServerVariables("url")' 获取地址栏中的域名后的 ASP 文件名。
currentrequest=request.ServerVariables("QUERY_STRING")' 获取地址栏中?后面的参数
' 如果你当前浏览的是老的 PR 查询地址 http://zzruipu.com/product_show.asp?id=395。则获得的 currentdomain 为 zzruipu.com,currenturl 为 /product_show.asp,currentrequest 为 id=395
If currentdomain="zzruipu.com" Then ' 因为 www.zzruipu.com 和 zzruipu.com 是公用所有文件。所以这里加个判定,只有当当前浏览的域名是 zzruipu.com 的时候才做 301 跳转,只有才能实现就算是公用文件,一个空间绑定多个域名,实现老域名跳转到新的域名。
moveurl="http://www.zzruipu.com"&turl ' 重新组合为 http://www.zzruipu.com/product_show.asp
If currentrequest<>"" Then
moveurl=moveurl&"?"&trequest ' 因为还有参数,所以将参数也组合到新的跳转地址中去。
End if
' 跳转。
Response.Status="301 Moved Permanently" ' 以下两句实现 301 永久性跳转
Response.AddHeader "Location",moveurl
End if
%>
<%
currentdomain= request.ServerVariables("SERVER_NAME")' 获取地址栏中当前的域名。
currenturl=request.ServerVariables("url")' 获取地址栏中的域名后的 ASP 文件名。
currentrequest=request.ServerVariables("QUERY_STRING")' 获取地址栏中?后面的参数
' 如果你当前浏览的是老的 PR 查询地址 http://zzruipu.com/product_show.asp?id=395。则获得的 currentdomain 为 zzruipu.com,currenturl 为 /product_show.asp,currentrequest 为 id=395
If currentdomain="zzruipu.com" Then ' 因为 www.zzruipu.com 和 zzruipu.com 是公用所有文件。所以这里加个判定,只有当当前浏览的域名是 zzruipu.com 的时候才做 301 跳转,只有才能实现就算是公用文件,一个空间绑定多个域名,实现老域名跳转到新的域名。
moveurl="http://www.zzruipu.com"&turl ' 重新组合为 http://www.zzruipu.com/product_show.asp
If currentrequest<>"" Then
moveurl=moveurl&"?"&trequest ' 因为还有参数,所以将参数也组合到新的跳转地址中去。
End if
' 跳转。
Response.Status="301 Moved Permanently" ' 以下两句实现 301 永久性跳转
Response.AddHeader "Location",moveurl
End if
%>
注意:上面代码只能加在 ASP 文件代码中的最上面
以上方法都能实现让不带 www 的域名跳转到带 www 的域名上,也就是我们常说的 301 重定向。在这里 lizhi125 要提醒大家一下静态页面是无法实现 301 重定向的,也就是说代码只能加在动态页面中,最好是网站首页的开头。如,index.asp 里面或者公共调用的文件(如 conn.asp)里面。