关于301重定向--对301跳转的了解(上)

  页*面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网*址重定向最为可行的一种办法。当用*户或搜索*引擎向网站服*务*器发出浏览请求时,服*务*器返回的HTTP数据流中头信*息(header)中的状态码的一种,表示本网页永久性转移到另一个地*址。

  一、域*名定向

  路由选择的变化也是对数据报文经由路径的一种重定向。

  在我们网站建设中,时常会遇到需要网页重定向的情况:像网站调整,改变了网站的目录结构,网页被移到一个新地*址。或者网页扩展名改变,如因应用需要 把.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对BMW德国网站的惩罚。即使网站客观上不是spam,也很容易被搜寻 引擎误判为spam而遭到惩罚。

  meta fresh: 这在2000年前比较流行,它具体是通过网页中的meta指令,在特定时间后重定向到新的网页,如果延迟的时间太短(约5秒之内),会被判断为spam。

  IIS服*务*器实现301重定向

  * 打开internet信*息服*务*管*理器,在欲重定向的网页或目录上按右键,选择“重定向到URL”,

  * 此处以重定向到百度为例

  * 在“重定向到”输入框中输入要跳转到的目标网页的URL地*址

  * 选中“资源的永久重定向”(切记)

  * 最后点击“应用”

  Apache服*务*器实现301重定向

  相比较来说,Apache实现起来要比IIS简单多了。在Apache中,有个很重要的文件.htaccess,通过对它的设置,可以实现很多强大的功能,301重定向只是其中之一。

  redirect permanent /index.php http://www/index.php?go=category_6(将网页index.php重定向到http://www./index.php?go=category_6)

  通过合理地配置重定向参数中的正则表达式,可以实现更复杂的匹配。有兴趣的朋友可参考本站Apache手册。

  PHP下的301重定向

  <?

  Header( "HTTP/1.1 301 Moved Permanently" );

  Header( "Location: http://www" );

  exit;

  ?>

  <html>

  <head>

  <title>HTTP/1.1 301 Moved Permanently</title>

  </head>

  <body>

  HTTP/1.1 301 Moved Permanently

  </body>

  </html>

  ASP下的301重定向

  <%@ Language=VBScript %>

  <%

  1.Status="301 Moved Permanently"

  2.AddHeader "Location","http://"

  %>

  ASP .NET下的301重定向

  <script runat="server">

  private void Page_Load(object sender, System.EventArgs e)

  {

  1.Status = "301 Moved Permanently";

  2.AddHeader ("Location","http://www);

  }

  </script>

  ColdFusion下的301重定向

  <.cfheader statuscode="301" statustext="Moved permanently">

  <.cfheader name="Location" value="http://www."> 旧域*名重定向到新域*名

  创建一个.htaccess文件,并将下面提供的代*码写入文件内,它可以确保旧域*名所有的目录或者网页正确的跳转到新域*名内。

  记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。

  Options +FollowSymLinks

  RewriteEngine on

  RewriteRule (.*) http://www/$1 [R=301,L]

  请将上面的wwwdomaincom修改成你想要跳转到的域*名。

  此外,我建议大家归总旧网站的外部连接,并联*系相应的站点修改导入连连的URL,以指向新站点。

  注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服*务*器的Linux主机上才能起作用。

  域*名301重定向到www的二级域*名

  首先要知道,www.是domaincom域下的一个二级域*名。

  301跳转到www二级域的实现方*式:

  创建一个.htaccess文件,并将下面提供的代*码写入文件内,它可以确保所有来自对domaincom的请求都转向到对www进行请求。记住.htaccess文件一定要放在旧网站的根目录下,并且新网站要和旧网站保持相同的目录结构及网页文件。

  Options +FollowSymlinks

  RewriteEngine on

  RewriteCond %{HTTP_HOST} ^ [NC]

  RewriteRule ^(.*)$ http://www./$1 [L,R=301]

  请将上面的domaincom修改成你想要跳转到的域*名。

  注意:.htaccess文件只有在使用安装有Mod Rewrite模块的Apache作为WEB服*务*器的Linux主机上才能起作用。

  ASP下使用web.config来实现301重定向

  如果网站根目录没有web.config就新建一个文本文档,保存成web.config即可,代*码如下:

  <configuration>

  <system.webServer>

  <rewrite>

  <rules>

  <rule name="WWW Redirect" stopProcessing="true">

  <match url=".*" />

  <conditions>

  <add input="{HTTP_HOST}" pattern="^$" />

  </conditions>

  <action type="Redirect" url="http://www/{R:0}"

  redirectType="Permanent" />

  </rule>

  </rules>

  </rewrite>

  </system.webServer>

  </configuration>

  将此web.config上传到网站根目录即可。别忘了把上面的domaincom换成你的域*名哦!

  前提条件是:window主机的IIS版本必须是7.0或以上的。

  在博*客中设置301的方法

  这里以Z-Blog为例详细介绍一下:

  1.复制如下代*码,将代*码中”改成你自己的网*址。

  if request.ServerVariables("SERVER_NAME")" then

  1.Status="301 Moved Permanently"

  2.AddHeader "Location", ""

  3.End

  end if

  1.进入Z-Blog后台,打开“文件管*理”界面。

  2.找到并打开网站根目录下的 default.asp 文件。

  3.将以上代*码加进 default.asp 在下图中红框所示位置。

  4.最后确定无误点击--提交--保存。

  三、检测工*具

  301重定向是在搜索*引擎优化中一个很常用的操作,可以帮助我们转移域*名的权*重。但是在做301重定向的时候由于服*务*器系*统、网站程*序语言、域*名和连接地*址的不同,使用的方法也不同。这个时候我们长春电缆桥架就要使用301重定向检测工*具,来检测我们的301重定向是否成功。

  HttpWatch检测工*具

  HttpWatch是强大的网页数据分析工*具,集成在Internet Explorer工*具栏。包括网页摘要、Cookies管*理、缓存管*理、消息头发送/接受、字符查询、报告输出、POST 数据和目录管*理功能。

  在IE工*具栏中 查看--浏览器栏--httpwatch 打开,也可以使用快捷键shift+F2打开。

  状态为:301状态 从demo1.php 成功301跳转到demo9.php ,验证301重定向设置成功。

  Chinaz站*长工*具

  chinaz站*长工*具是业内有名的站*长工*具。其功能非常丰富,点击http状态码查询,输入网*址,可以查询出网站的http状态码,确保是301而不是302.

  四、运作流程

  网站服*务*器响应网页浏览请求的运作流程

  让我们先来了解一下用*户/搜索*引擎和网站一开始的交互流程。当用*户或搜索*引擎向一个网站服*务*器发出网页浏览请求时,该服*务*器将:

  通过域*名服*务*器(DNS)将域*名转换为网站的IP地*址,然后返回给客*户;

  打开一个该IP套接口连接;

  记下通过该套接口的一个HTTP数据流;

  从WEB服*务*器接收一个响应请求的HTTP数据流。该数据流包含状态码,状态码的值由HTTP协*议所决定。这里所说的“HTTP数据流”信*息也叫“头信 息(Header)”。头信*息中包括了日期,服*务*器类型,通常还会有一条“200 OK”信*息。如果一切良好,那么网络服*务*器就会将“200 OK”信*息以及请求页*面发送出去。如果网站在这时候已经建立了重定向,那么服*务*器长春桥架厂就会在头信*息中包含一个“302 Moved Temporarily”或“301 Moved Permanent”之类的响应信*息。搜索*引擎会根据服*务*器头信*息中的内容作出决定。

  什么时候用301重定向

  1.域*名到期了不想续费,想换个域*名。

  2.在搜索*引擎的搜索结果中出现了不带www的域*名,而带www的域*名缺没有收录,这个时候我们就可以使用301重定向,来告诉搜索*引擎我们目标的域*名是哪一个。

  3.空间服*务*器不稳定,换空间的时候。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章