在我们的网站建设中,时常会遇到需要网页重定向的情况:象网站调整,如改变网页目录结构,网页被移到一个新地址,再或者,网页扩展名改变,如因应用 需要把.php改成.html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页 面错误信息,访问流量白白丧失;再如某些注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点,等等。
常用的重定向方式有: 301 redirect, 302 redirect 与 meta fresh:
301 redirect: 301代表永久性转移(permanently moved),301重定向是网页更改地址后对搜索引擎友好的最好方法,只要不是暂时搬移的情况,都建议使用301来做转址。
302 redirect: 302代表暂时性转移(temporarily moved ),在前些年,不少black hat seo曾广泛应用这项技术作弊,目前,各大主要搜索引擎均加强了打击力度,象google前些年对business.com以及近来对bmw德国网站的惩 罚。即使网站客观上不是spam,也很容易被搜寻引擎容易误判为spam而遭到惩罚。
meta fresh: 这在2000年前比较流行,不过现在已很少见。其具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之內),会被判断为spam。
301 redirect实现网页重定向
iis服务器实现301重定向
apache服务器实现301重定向
相比较来说,apache实现起来要比iis简单多了。在apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。
通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。
php下的301重定向
asp下的301重定向
asp .net下的301重定向
coldfusion下的301重定向
旧域名重定向到新域名
创建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保旧域名所有的目录或者网页正确的跳转到新域名内。
记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
请将上面的www.domain.com修改成你想要跳转到的域名。
此外,我建议大家归总旧网站的外部链接,并联系相应的站点修改导入链链的url,以指向新站点。
注意:.htaccess文件只有在使用安装有mod rewrite模块的apache作为web服务器的linux主机上才能起作用
域名301重定向到www的二级域名
在以前的文章中我反复提及过:www.domain.com是domain.com域下的一个二级域名,并对二级域名和一级目录之间如何选择以及网站结构优化做了一个详细的分析,有兴趣的可以读一下两篇文章,网站结构优化是seo中最重要。
ok,继续域301跳转到www二级域的实现方式:
创 建一个.htaccess文件,并将下面提供的代码写入文件内,它可以确保所有来自对domain.com的请求都转向到对www.domain.com 进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件
请将上面的domain.com和www.domain.com修改成你想要跳转到的域名。
注意:.htaccess文件只有在使用安装有mod rewrite模块的apache作为web服务器的linux主机上才能起作用
301重定向检测工具
配置完成后,一定认真检查一下是否正确。internet有很多类似的server header检查工具,如check server headers tool - http status codes checker
网站302重定向使用不当导致被google惩罚
business.com是网上最大的商业搜索引擎和分类目录,以专业提供商业信息而享负盛名,包括近19万网页。若以“business”为关键词在 google中进行搜索,该网站名列第一。不过在9月5日,business.com遇到一件蹊跷之事:它的首页由pr8变成了pr0, 而且google搜索结果中找不到首页。好在被“蒸发”的只是首页,不过庆幸的是第二天首页又回到了google的搜索结果,但pr仍旧为0。
business.com的问题出在它的重定向命令上。该网站让business.com跳转到www.business.com,这种重定向本该是永 久性的。我们知道,301属于永久性重定向,而302则属于临时性重定向,只有当一个网站或网页在24到48小时之内临时移到其它位置的情况下才能使用该 命令。但business.com却错误地使用了“http/1.1302 object moved”状态码。
其实网站重定向 极为普遍,譬如不满意原来的域名而申请了一个新域名;买下容易被人错拼的域名,防止客户因为拼错url而找不到网站,等等。可是,很多人却会由于使用了错 误的重定向状态码而遭“灭站之灾”,就象business.com。尽管他们的重定向理由充分合理,然而若使用不当,则可能被google误认为是利用多 个域名指向同一网站,那么你的网站就会被封掉,罪名是“利用重复的内容来干扰google搜索结果的网站排名”。business.com就是最好的前车 之鉴。只不过大多数使用错误重定向参数的网站没business.com这么幸运,一个小小的重定向就可能使网站前功尽弃,只能从头来过:重新申请新域 名,重新发布新网站,等等。记住:google绝不会同情任何人即使无心犯下的错误。
网站服务器响应网页浏览请求的运作流程
让我们先来了解一下用户/搜索引擎和网站一开始的交互流程。当用户或搜索引擎向一个网站服务器发出网页浏览请求时,该服务器将:
1.通过域名服务器(dns)将域名转换为网站的ip地址,然后返回给客户
2.打开一个该ip套接口连接
3.记下通过该套接口的一个http数据流
4. 从web服务器接收一个响应请求的http数据流。该数据流包含状态码,状态码的值由http协议所决定。这里所说的“http数据流”信息也叫“头信息 (header)”。头信息中包括了日期,服务器类型,通常还会有一条“200 ok”信息。如果一切良好,那么网络服务器就会将“200 ok”信息以及请求页面发送出去。如果网站在这时候已经建立了重定向,那么服务器就会在头信息中包含一个“302 moved temporarily”或“301 moved permanent”之类的响应信息。搜索引擎会根据服务器头信息中的内容作出决定。
网站重定向的注意事项
1.若准备将服务器上的文件移到其它地方时,须就以下信息正确地通知搜索引擎的爬行程序:
- 目标地址:这些文件被移向何方
- 移动属性:暂时移走还是永久性移走
2.对拥有多个域名的网站,专家建议应把那些不想在搜索引擎上推广的域名用301跳转命令来永久性重定向。
确保网站实施了正确的301重定向
对于正确实施301重定向,有这样几个方法可供大家参考:
1.在.htaccess文件中增加301重定向指令
2.适用于使用unix网络服务器的用户。通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。形如:redirect 301 / http://www.yourdomain.com/
3.在服务器软件的系统管理员配置区完成301重定向
适用于使用window网络服务器的用户
4.采用“mod_rewrite”技术
通过该技术进行的改变将在.htaccess文件中体现出来,形如:
新闻热点
疑难解答