静态页面使用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来管理,操作起来非常费事。

Google