- N +

301转向

    什么是301转向?

    301转向(或叫301重定向、301跳转)是用户或蜘蛛向网站服务器发出访问请求时,服务器返回的HTTP数据流中头信息(header)部分状态码的一种,表示本网址永久性转移到另一个地址。

    其他常见的状态码还包括:

    .200表示一切正常

    .404网页不存在

    .302临时性转向

    .500内部程序错误

    为什么要做网址转向?

    除了解决网址规范化问题,还有很多需要做301转向的情形。

    比如,为保护版权,公司拥有不同TLD的多个域名:

    .jhmsk.com

    .jhmsk.net

    .jhmsk.com.cn

    .jhmsk.cn

    为了避免造成大量复制内容,应该选定一个为主域名,如jhmsk.com,其他域名做301转向到jhmsk.com。

    或者公司注册了全称域名longcomjhmsk.com,但太长,也注册了缩写域名方便用户记住lcs.com,其中一个做主域名,另一个301转向到主域名。

    网站改版也经常需要用到301转向,如页面删除、改变地址、URL命名系统改变等。

301转向

    动态URL静态化也可能要做301,将旧的、动态的URL做301到新的、静态的URL。

    301转向跳转共有两种方法:

    1.服务器设置法,本设置方法因服务器软件版本较多,且设置繁琐,不推荐使用。

    2.页面跳转方法,本方法在浏览器中执行,大多数浏览器均支持本301跳转页面,所以使用较为广泛。

    IIS使用301:

    选择需要301重定向的站点或者站点目录,右键属性-》目录,选择重定向URL并输入地址,勾选“资源的永久定向”。如下图:值得注意的是,域名服务商的解析系统内的网址转发用的不一定是使用的是301重定向,使用之前最好联系客服确定下转发类型。

    搜索引擎:

    使用301重定向将您原来网站上的所有网页永久重定向至新网站。这可以告诉搜索引擎和用户您的网站已永久迁移。是符合搜索引擎友好的,目前最安全的网址域名更换方法。

    301重定向的两种实现方法

    修改.htaccess文件

    代码如下:

    1<ifmodulemod_rewrite.c="">

    2RewriteEngineOn

    3RewriteCond%{HTTP_HOST}nowamagic.com$[NC]

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

    5RewriteCond%{HTTP_HOST}nowamagic.info$[NC]

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

    7</ifmodule>

    关键代码就是2句话:

    1RewriteCond%{HTTP_HOST}nowamagic.com$[NC]

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

    上面的域名是需要被重定向的旧域名,下面的是现在网站的域名。

    使用PHP的重定向代码

    新建一个index.php文件,然后参考下面代码按自己的重定向要求做简单修改:

    01<?php

    02$the_host=$_SERVER['HTTP_HOST'];

    03$request_uri=isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'';

    04switch($the_host)

    05{

    06case"www.nowamagic.tk":

    07case"nowamagic.tk":

    08$location="Location:http://nowamagic.net".$request_uri;

    09break;

    10case"blog.nowamagic.tk":

    11$location="Location:http://blog.nowamagic.net".$request_uri;

    12break;

    13case"www.moiya.tk":

    14case"moiya.tk":

    15$location="Location:http://nowamagic.net";

    16break;

    17default:

    18$location="Location:http://nowamagic.net";

    19break;

    20}

    21header('HTTP/1.1301MovedPermanently');

    22header($location);

    23exit();

    24?>

    如果只要对一个域名进行重定向,可以把代码简化成下面的形式:

    01<?php

    02$the_host=$_SERVER['HTTP_HOST'];//取得进入所输入的域名

    03$request_uri=isset($_SERVER['REQUEST_URI'])?$_SERVER['REQUEST_URI']:'';//判断后面的请求部分

    04if($the_host!=='nowamagic.net')//nowamagic.net是我现在的域名

    05{

    06header('HTTP/1.1301MovedPermanently');//发出301头部

    07header('Location:http://nowamagic.net'.$request_uri);//跳转到我的新域名地址

    08exit();

    09}

    10?>

    注意,最后的exit()函数是一定要写的,我最初就没有写,结果只能重定向首页,像http://www.nowamagic.net/guestbook这样的网页,就无法进行重定向。

    最后,关于重定向的一些细节:如果要对三个域名进行重定向,重定向前,首先将这三个域名作为AddonDomain绑定到我的服务器上去,并让这三个域名指向同一个文件夹,这样,只要修改这一个文件夹中的.htaccess文件或者index.php文件就可以了。如果没有.htaccess文件或者index.php文件,新建一个即可。


返回列表
上一篇:robots文件
下一篇:网站代码优化|网站代码优化方法
网站SEO优化|网站定制留言