所在位置:首页 > 学习心得 > 301重定向代码及使用
301重定向代码及使用
  • 301重定向代码及使用
    发布时间:2010-07-07 类别:PHP技术 来源:侠客工作室
    • 1
    • 2
    • 3
    • 4
    • 5
  • 关于301重定向的好处,和一般301重定向的方法,网上有很多,笔者就不重复了,今天要说的,是网站通过修改网页的形式做好301重定向。

    下面以php代码为示例:

    一般网上能找到的301重定向代码都是:

    PHP代码
    <? Header( ”HTTP/1.1 301 Moved Permanently” );
    Header( ”Location: http://www.abc.com” );?>

    这个301重定向代码只适应于网站迁移的情况,即旧站和新站域名不同、根目录也不相同的情况。如果网站属于一个网站绑定2个域名,2个域名的根目录为同一个,那么,就会行成死循环。

    下面这个301重定向代码只适应于网站首页的301重定向,如果网站已经被收录,或存在大量的非首页外链,要全部301重定向过来,那就无能为力了。更合适的方法是使 用.htaccess来定向,简单快捷,不过笔者不懂这个,在此,笔者将PHP网站301重定向方法完全放出,希望能帮到新人,如果有不足之处,也请高手 指出,不胜感激。

    一、建立一个301.inc.php(文件名自取)
    <?php
    $the_host = $_SERVER[’HTTP_HOST’];//取得进入所输入的域名
    $request_uri = isset($_SERVER[’REQUEST_URI’]) ? $_SERVER[’REQUEST_URI’] : ’’;//判断地址后面部分
    if($the_host !== ’www.xunihost.com’)//这是我要以前的域名地址
    {
    header(’HTTP/1.1 301 Moved Permanently’);//发出301头部
    header(’Location: http://www.xxx.net’.$request_uri);//跳转到我的新域名地址
    }
    ?>

    其 中if($the_host !== ’www.xunihost.com’)中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,就可以将以前 的域名,包括jinjie168.com、www.xxx.com以及新域名中我xunihost.com全部重定向到www.xxx.net。

    二、在网页文件中调用301.inc.php
    <?php include(“301.inc.php”); //301重定向 ?>
    将这个301重定向调用代码放到你所有网页的最前面。

    好了,301重定向就做好了,将301文件上传到网站目录,就可以去看看你的成果了。

    通过上面的例子相信大家可以在各种代码下操作了,下面就来看看各种情况下的301重定向代码:

    1、IIS下301重定向设置

    Internet信息服务管理器 -> 虚拟目录 -> 重定向到URL,输入需要转向的目标URL,并选择“资源的永久重定向”。

    2、ASP下的301重定向代码

    <%@ Language=VBScript %>
    <%
    Response.Status=”301 Moved Permanently”
    Response.AddHeader “Location”, “http://www.jinjie168.com/articles/301/”
    %>

    3、ASP.Net下的301重定向代码

    <script runat=”server”>
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = “301 Moved Permanently”;
    Response.AddHeader(”Location”,”http://www.jinjie168.com/articles/301/“);
    }
    </script>

    4、PHP下的301重定向代码

    header(”HTTP/1.1 301 Moved Permanently”);
    header(”Location: http://www.jinjie168.com/articles/301/”);
    exit();

    5、CGI Perl下的301重定向代码

    $q = new CGI;
    print $q->redirect(”http://www.xunihost.com/”);

    6、JSP下的301重定向代码

    <%
    response.setStatus(301);
    response.setHeader( “Location”, “http://www.xunihost.com/” );
    response.setHeader( “Connection”, “close” );
    %>

    7、Apache下301重定向代码

    新建.htaccess文件,输入下列内容(需要开启mod_rewrite):

    1)将不带WWW的域名转向到带WWW的域名下

    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^lesishu.cn [NC]
    RewriteRule ^(.*)$ http://www.xunihost.com/$1 [L,R=301]

    2)重定向到新域名

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule ^(.*)$ http://www.xunihost.com/$1 [L,R=301]

    3)使用正则进行301重定向,实现伪静态

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule ^news-(.+)\.html$ news.php?id=$1

    将news.php?id=123这样的地址转向到news-123.html

    8、Apache下vhosts.conf中配置301重定向

    为实现URL规范化,SEO通常将不带WWW的域名转向到带WWW域名,vhosts.conf中配置为:

    <VirtualHost *:80>
    ServerName www.xunihost.com
    DocumentRoot /home/lesishu
    </VirtualHost>

    <VirtualHost *:80>
    ServerName lesishu.cn
    RedirectMatch permanent ^/(.*) http://www.xunihost.com/$1
    </VirtualHost>

    Apache下除了以上2种方法,还有其他配置方法和可选参数,建议阅读Apache文档。

    301重定向情况检测

    1. http://www.seoconsultants.com/tools/headers.asp
    2. http://www.internetofficer.com/seo-tool/redirect-check/

    http://pindao.huoban.taobao.com/tms/channel/digital.htm?pid=mm_17024276_0_0&eventid=101332

  • ☆☆☆技术交流群:5684178☆☆☆
  • 上一篇:利用{dede:sql}自由SQL语句真正调用分类信息发布作者到首页的方法
  • 下一篇:如何添加可以执行php的文件类型
侠客工作室主要承揽网站制作|企业建站|北京网站制作|北京网站建设|北京企业建站|专业仿站|SEO优化等业务
地址:北京市海定区清河水木天成 电话:13718388147 13718388147 传真:13718388147 访问统计:
投诉电话:13718388147 投诉QQ:点击这里给我发消息 客服信箱:1300105556@qq.com 邮编:102200 北京网站建设地图 北京网站建设RSS地图
版权所有 2009-2014侠客工作室【北京网站建设】 京ICP备11021494号-1