您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > url和301转向(重定向跳转)的实现
url转发和301转向(重定向跳转)的实现301转向(跳转,重定向)的作用为什么要使用301转向?首先第一条就是刚才我们提到的为了seo优化,在如何url网址规范化中也提到,设置301转向后,原来的页面将返回301HTTP状态码给浏览器或者搜索引擎,告知搜索引擎次页面已经永久重定向到了新的网页上,spider就不会索引原网页,同时也会将原网页的PR权重传递给跳转到的新网页。如果返回的是302状态码,则告诉spider页面跳转只是临时的,spider仍然会索引原网页,这就造成了重复页面问题(即Google补充材料)。如,它们就会被当做两个重复页面。其次,由于各种原因要更换域名时,可以使用301重定向将老域名301转向到新的域名,这样老域名的流量不会流失,PR权重也会转移。另外当有注册了多个不同域名,指向到同一网站时,也可以只设置一个主域名,将其他域名设置301转向到主域名,这样各个域名就不会分散权重。因此使用301转向很有必要。url转发的原理url转发有两种方式,隐藏转发和(url转发后浏览器地址栏输入的网址不变)不隐藏转发(也叫显性转发:url转发后地址栏显示的地址为转发后的网址)。有人测试过,不管是隐藏转发还是不隐藏转发,根据不同的域名注册服务商,可能会返回不同的httpheader。有的域名服务商管理后台设置的url转发功能(URLForwarding)会使服务器返回302状态码给搜索引擎,而不是301http状态码。据说这类url转发有的是通过给浏览器窗口套用一个框架iframe的方式来实现隐藏转发,有的则是使用Javascript或MetaRefresh来实现不隐藏方式的url转发,很少是真正用了301重定向方法的。所以大家还是尽量少用url转发功能,而是自己去手工设置实现301转向。如何实现301重定向前面我们已经提到了很多关于WordPress等404页面的设置方法。设置301重定向(301转向,跳转)的实现方法也有很多,下面根据不同的空间服务器类型和程序语言列出各种301重定向实现代码,要参考的童靴请对号入座:Linux主机Apache服务器Mod-Rewrite模式:通过.htaccess文件当浏览器或搜索引擎spider发送一个页面请求时,Web服务器就会检查一个名为'.htaccess'的文件,这个文件指明了如何处理页面请求,通过修改设置'.htaccess'文件就可以告知搜索引擎某个页面是302转向(临时跳转)还是301重定向(永久性跳转)。有的Linux主机服务器还支持你在管理后台直接设置301转向。如果不能在后台设置,实现301重定向步骤也很简单:新建一个文件名为.htaccess.txt的文档(注意前面的点号不能遗漏),在txt文档中写入以下301转向代码:Options+FollowSymLinksRewriteEngineonrewritecond%{http_host}^[nc]rewriterule^(.*)$[r=301,nc]或RewriteEngineOnRewriteCond%{HTTP_HOST}!^farlee.info$[NC]RewriteRule^(.*)$[L,R=301]保存文件,将文件名称末尾的.txt去掉,上传到网站根目录即可。上面的代码表示整站所有的以带(不仅是首页,子目录/网页也可以)。如果是其他域名要重定向到farlee.info这个新域名,则在.htaccess文件中加入如下重定向代码:Options+FollowSymLinksRewriteEngineonRewriteRule^(.*)$[L,R=301]Windows主机IIS下的301转向设置在IIS管理后台-选择你要重定向的文件或文件夹-右键“重定向到URL”-输入需要转向的目标URL-选择“资源的永久重定向”。另外,如果你的Windows虚拟主机空间支持ISAPI_Rewrite,那么在IIS下利用ISAPI_Rewrite不仅可以实现url重写,还可以用来设置301转向,下面分别是三个版本的ISAPI_Rewrite对应的带域名的代码:#ISAPI_Rewrite1.3版本域名的301重定向RewriteCondHost:^(.*)http\://farlee\.info$1[I,R]#ISAPI_Rewrite2.x版本RewriteCondHost:^(.*)http\://farlee\.info$1[I,RP]#ISAPI_Rewrite3.x版本RewriteCond%{HTTP:Host}^(.*)http\://farlee\.info$1[NC,R=301]在其他情况下,如不同域名之间在IIS下的301重定向代码请看详细介绍:ISAPIRewrite实现IIS301转向。PHP301重定向代码301重定向也可以在php文件中通过加入phpheader来实现,代码如下:?phpheader(HTTP/1.1301MovedPermanently);header(Location:);exit();?ASP301重定向代码%@Language=VBScript%%Response.Status=301MovedPermanentlyResponse.AddHeaderLocation,重定向代码scriptlanguage=c#runat=serverprivatevoidPage_Load(objectsender,System.EventArgse){Response.Status=301MovedPermanently;Response.AddHeader(Location,);}/scriptColdFusion301重定向代码.cfheaderstatuscode=301statustext=Movedpermanently.cfheadername=Locationvalue=下的301转向代码$q=newCGI;print$q-redirect();JSP下的301转向代码%response.setStatus(301);response.setHeader(Location,);response.setHeader(Connection,close);%没想到这篇文章写了这么长,有那么多种301转向方法供我们选择,我们还要依赖域名url转发功能干什么呢?
本文标题:url和301转向(重定向跳转)的实现
链接地址:https://www.777doc.com/doc-2865269 .html