控制面板| 帮助中心| 有问必答 | 会员专区 | 付款方式 | QQ支持:408005666 | 服务热线:
注册会员 忘记密码
301重定向实现方法(包括asp内页重定向解决方案),及对网站优化的作用 更多内容,请登录会员查看
网站动态

首页 >> 行业新闻 >> 301重定向实现方法(包括asp内页重定向解决方案),及对网站优化的作用

301重定向实现方法(包括asp内页重定向解决方案),及对网站优化的作用

 
分享到:
发布时间:2011-3-21 16:22:23
301重定向(也叫301转向,301跳转)对网站优化所起的作用是不可忽视的,尤其是针对SE(搜索引擎)处理网站页面权重的时候,更加显得重要。网站换了新域名,需要跳转,网站有两个或者更多域名,需要跳转到主域名等,从SEO角度来说,我们都建议使用301重定向,而不是JS跳转或META REFRESH或302转向,这些很容易引来SE的惩罚。 什么是301重定向呢? 301重定向是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。其它常见的状态码还包括,200表示一切正常,404网页找不到,302暂时转向,等等。为什么要用301转向? 网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。

本文,仅仅讨论在ASP环境下,如何设置301重定向问题;其他语言亦可参考。

为了版权、品牌保护或者其他任何原因,一个网站拥有两个域名:hiwww.cn和hiwww.com.cn,或者更多的域名。

作为SEO,我们肯定推荐使用301跳转,当用户访问hiwww.com.cn时,自动引导用户进入新域名hiwww.cn,可以通过程序或域名跳转实现301跳转,这样可以将次要域名PR传递到主要域名。

但是如果用户收藏了次要域名的某个内容页(譬如:hiwww.com.cn/host/index.asp),通过域名跳转直接引导到hiwww.cn首页恐怕会产生较差用户体验,特别是对不知道有多个域名的用户;最好方式是实现通配,动态的将次要域名某个内页跳转到主域名相同页面的URL,那如何用技术手段实现新旧内页URL之间的301跳转???

即:从hiwww.com.cn/host/index.asp跳转到hiwww.cn/host/index.asp,并使浏览器返回301代码

例如:
万网代理你好互联的域名有hiwww.cn和hiwww.com.cn

要实现次要域名hiwww.com.cn向主域名hiwww.cn的跳转

ASP脚本实现301跳转的方法:

<%
if request.ServerVariables("HTTP_HOST")<>"www.hiwww.cn" then
Response.Status="301 Moved Permanently"

if Request.ServerVariables("QUERY_STRING")<>"" then p="?" end if
Response.AddHeader "Location","http://www.hiwww.cn"&Request.ServerVariables("SCRIPT_NAME")&p&Request.ServerVariables("QUERY_STRING")
Response.End
end if
%>


但是这样仍然存在问题

我们知道,网站的首页一般有以下几种:

http://www.hiwww.cn
http://www.hiwww.cn/index.asp

比如用户输入http://hiwww.com.cn本代码会实现301跳转到http://www.hiwww.cn/index.asp这个网址上,达到统一域名的目的。但这里出现一个问题,如果跳转到http://www.hiwww.cn/index.asp,那么搜索引擎会给这个网址形式加分,虽然index.asp是默认首页,但我们希望的是把所有权重都给予http://www.hiwww.cn这个形式。有人说,这两个形式不是都一样吗?不一样。比如:http://www.hiwww.cn的PR为2,而http://www.hiwww.cn/index.asp的PR可能为1。从这点可以看出,SE是给予是否有index.asp的网址形式以不同的权重的。而使用Request.ServerVariables("SCRIPT_NAME")或Request("url")获取到的后缀无论输入时是否带有index.asp都一律返回index.asp,当然这是指仅asp语言环境。

解决方法如下,给予返回的Request.ServerVariables("SCRIPT_NAME")一个判断,如果是首页,就返回http://www.hiwww.cn

代码如下:

<%
if request.ServerVariables("HTTP_HOST")<>"www.hiwww.cn" then
Response.Status="301 Moved Permanently"
if Request.ServerVariables("QUERY_STRING")<>"" then p="?" end if
if Request.ServerVariables("SCRIPT_NAME")="/index.asp" then
Response.AddHeader "Location","http://www.hiwww.cn"
else
Response.AddHeader "Location","http://www.hiwww.cn"&Request.ServerVariables("SCRIPT_NAME")&p&Request.ServerVariables("QUERY_STRING")
end if
Response.End
end if
%>

经过这些设置后,301转向应该可以配置OK啦,如果想检查一下是否正确,则可以使用网上提供Server Header检查工具,如Check Server Headers Tool - HTTP Status Codes Checker

用以上检测http状态码工具,可以做个简单的检查,如检查http://hiwww.cn,返回的结果如下:

1. Requesting: http://hiwww.cn
GET / HTTP/1.1
Connection: Keep-Alive
Keep-Alive: 300
Accept:*/*
Host: hiwww.cn
Accept-Language: en-us
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
Server Response:
HTTP/1.1 301 Moved PermanentlyDate: Mon, 21 Mar 2011 07:10:09 GMTServer: Microsoft-IIS/6.0Location: http://www.hiwww.cnContent-Length: 0Content-Type: text/htmlSet-Cookie: ASPSESSIONIDCQQQDSTB=OAIPPBPCHIKBBLJJLOCCLBDD; path=/Cache-control: private

注意以上返回的结果中“HTTP/1.1 301 Moved PermanentlyDate”,说明这个网址采用了301永久重定向功能了,设置成功。如果您对本文有任何看法,欢迎留下您的评论,以便我们一起探讨。

如需转载请注明出处万网代理-你好互联http://www.hiwww.cn