301重定向是SEO中常用到的,需要将不带www的域名跳转到带www的域名而增加后者的权重.拿ASP网站来说,要实现301重定向,如果独立主机的话,可以更改IIS配置来实现.相对比较容易,如果是虚拟主机呢?因为现在很多的网站都是用虚拟主机的,那么现在我们就说说虚拟主机的ASP网站如何实现301重定向.
1
下面就以wanweiwang.cn的域名为例,说解一下,在实际操作中注意要更换为你的域名.301重定向分为首页301重定向和全站301重定向.先说首页301重定向
2
首页301重定向代码:
<% website=request.ServerVariables("Server_name")
'获取当前访问的域名
if website="wanweiwang.cn" then
'判断如果你的域名如果是wanweiwang.cn
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.wanweiwang.cn/"
'做301重定向到www.wanweiwang.cn
end if %>
把上面的代码放到首页的上方进行保存,就可以了,通过测试,返回的状态码是301就成功
3
接着是全站的301设置:
在讲解之前先了解一下request.ServerVariables变量的用法:
request.ServerVariables("SERVER_NAME") '获取当前的域名。
request.ServerVariables("SCRIPT_NAME") '返回当前页面的相对路径。 request.ServerVariables("QUERY_STRING") '获取?后面的参数
如网址:wanweiwang.cn/shownews.asp?id=199
那么request.ServerVariables("SERVER_NAME")获取到的值是wanweiwang.cn
request.ServerVariables("SCRIPT_NAME")获取到的值是/shownews.asp
request.ServerVariables("QUERY_STRING")获取到的值是id=199
4
全站的301重定向代码如下:
<%
if request.ServerVariables("HTTP_HOST")="www.wanweiwang.cn" Then
if Request.ServerVariables("QUERY_STRING")<>"" Then
p="?"
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://m.wanweiwang.cn"&Request.ServerVariables("SCRIPT_NAME")&p&Request.ServerVariables("QUERY_STRING")
Response.End
elseif Request.ServerVariables("QUERY_STRING")="" and Request.ServerVariables("SCRIPT_NAME")<>"" and Request.ServerVariables("SCRIPT_NAME")<>"/index.html" Then
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://m.wanweiwang.cn"&Request.ServerVariables("SCRIPT_NAME")
Response.End
else
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://m.wanweiwang.cn/"
Response.End
end if
end if
%>
把网站任何一个不带www的网址去测试.如果返回是301就代表成功.
5
以上代码只能加在ASP文件代码中的最上面,并记得把上面的域名换成自己的域名.
以上方法都能实现让不带www的域名跳转到带www的域名上,也就是我们常说的301重定向。可以放在公共调用的文件(如conn.asp)里面。
我这里是放到head.asp文件中