静态页面使用301转向的方法
301转向的目的是让搜索引擎知道页面地址已经被永久转移。使用301转向后,原有页面的索引和关键字排名能保持不变,对维持搜索引擎过来的流量很有帮助。一般来说,动态页面实现起来比较简单,加个301 Moved Permanently 就可以了。但是静态页面不一样,HTML一被读取,就返回200 OK状态码,所以要用特殊的"301转向方法"。
方法一:这是网上流传的,未经亲自验证。
Windows下IIS虚拟主机用户通常没有设置IIS实现301转向的权限,然后面对大量文件需要设置时,独立主机用户也会感到很棘手。实现静态页面的301转向,其原理是用404转200,再转301。
1. 修改原目录名,http://www.royh.cn/javascript -> http://www.royh.cn/javascript_new87897/ 之类
2. 新建/error.asp,在服务商后台设置404错误URL到/error.asp 因为原目录不存在了,所有类似 www.royh.cn/javascript/select/multiple.html 就出现了404错误
3. 错误定向到error.asp?404;http://www.royh.cn:80/javascript/select/multiple.html,返回200正常码
关键步骤:分析request.querystring中的地址,response.Status写301,转到新地址
附上代码:
dim url,pos ,sign
url = lcase(request.QueryString)
sign = lcase(request.ServerVariables("SERVER_NAME"))&":"&request.ServerVariables
("SERVER_PORT")&"/previous/"
if url="404;http://"&left(sign,len(sign)-1) or url="404;http://"&sign then
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://javascript.royh.cn/index.html"
Response.End()
else
pos = instr(url, sign)
if pos>0 then
url = right(url, len(url)-pos - len(sign) 2)
if right(url,1)="/" then
url = url&"index.html"
end if
Response.Status = "301 Moved Permanently"
Response.AddHeader "Location", "http://javascript.royh.cn"&url
Response.End()
end if
end if
方法二 : 已经用过而且效果很理想
比如xxx.com/previous/aaa.html要转为xxx.com/new/aaa.html
把所有旧的静态页面用Meta转向,用这句
<meta http-equiv="refresh" content="6;url=http://www.xxx.com/new/aaa.html">
注意跳转的时间必须在6秒以上。
最好在页面里开头部分添加页面声明,告诉访问者页面将被重定向,这样一经跳转不会引起用户立刻关闭浏览器。新旧页面同时共存一个月,就可以把旧的页面彻底删除,因为搜索引擎已经认可了新的路径。
这样的麻烦在于,如果大量的静态页面没有良好的CMS来管理,操作起来非常费事。
