• 您当前位置:网站首页 >> PHP学习 >> 301重定向PHP代码 PHP的301自动跳转代码
  • 301重定向PHP代码 PHP的301自动跳转代码

    iCoA首席特工 逍遥峡谷 发布:2011-04-12 更新:2011-04-12 浏览27条评论
    内容简介

    有时候我们的有多个域名指向同一个网站,或者我们更换了网站的网址,那么怎么样将原来网站的流量导入到新网址中呢,那么我们可以用301重定向的方式,而且这种方式是对搜索引擎比较友好的方式。如果首页是PHP做的,可以使用PHP的301重定向的代码……

    相关关键词:PHP   301   跳转   重定向  

    本文链接:https://www.icoa.cn/a/475.html

    本站文章如非注明皆为原创,未经允许禁止转载。如有问题可以给我留言或发邮件。

    以前介绍过301重定向ASP代码,也就是ASP程序可以用代码来实现网址的301跳转,如果我们使用的PHP程序,那么同样可以用一段代码来实现网址的301重定向

    如果仅仅是对某个页面进行301跳转,其实很简单,只要在PHP页面的头部输入下面的代码就可以。

    <?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: https://www.icoa.cn");
    ?>


    这个对于更换了网址或者网站结构来说非常方便,但是如果针对很多页面那么这种跳转方式就不友好了,我们应该根据不同的页面跳转的不同的网址。

    这个还可以实现比如icoa.cn跳转到www.icoa.cn上,也就是让所有的页面都用带www的网址。

    一、建立一个301.php(文件名自取)

    <?php 
    $the_host = $_SERVER['HTTP_HOST'];//取得当前域名
    $the_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';//判断地址后面部分
    $the_url = strtolower($the_url);//将英文字母转成小写
    if($the_url=="/index.php")//判断是不是首页
    {
    $the_url="/";//如果是首页,赋值为“/”
    }
    if($the_host !== 'www.icoa.cn')//如果域名不是带www的网址那么进行下面的301跳转
    {
    header('HTTP/1.1 301 Moved Permanently');//发出301头部 
    header('Location:https://www.icoa.cn'.$the_url);//跳转到带www的网址
    }
    ?>


    其中if($the_host !== 'www.icoa.cn')中的“!==”是不完全等于的意思,也可以用“!=”不等于,这样,除了可以将icoa.cn跳转到带www的网址,还可以把所有绑定到这个空间的域名跳转的www.icoa.cn

    因为有朋友留言说首页跳转之后网址里会出现/index.php,于是增加了一个判断是否是首页的语句。

    二、在网页文件中调用301.php

    <?php include("301.php"); //301重定向 ?>


    将这个代码放到你所有网页的最前面。

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

    本文链接:https://www.icoa.cn/a/475.html
    关键词: PHP   301   跳转   重定向  


    如果您愿意支持本站,欢迎点击打赏哦~



    下一篇:用PHP的fopen函数读写robots.txt文件

    上一篇:初学PHP之根据服务器日期和时间判断网址跳转


    - 相关文章 -


    PHP中如何去掉字符串首尾空格 - 2013-12-12

    php使用strlen()判断字符串长度 - 2013-12-12

    WordPress 开启 SSL 成功使用 https:// 访问的方法 - 2023-03-09

    PHP用substr函数截取字符串中的某部分 - 2012-12-27

    PHP 使用 $_GET 提示 Undefined array key 怎么办? - 2022-05-14

    PHP 使用 $_POST 提示 Undefined array key 怎么办? - 2022-01-01

    PHP使用date()函数输出日期时间 - 2012-08-29

    用PHP读写文本文档制作最简单的访问计数器 - 2010-10-13


    - 文章评论 -




    6752

    [由于政策原因,您的留言如果提交成功后,需要审核才能展示,请改天再来查看,请不要重复提交,谢谢支持!]

    - 最新评论[27条评论] -


    灰狐
    2019-05-11 10:43:32

    <?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.icoa.cn";);
    ?>
    输入这个代码出现Parse error: syntax error, unexpected '<', expecting end of file in D:\wwwroot\jhdspx.com\index.php on line 2  这是什么原因呢

    站长回复: 语法问题,你的 ; 号多了一个
    zzf
    2018-03-23 00:30:11

    用你的方法成功了,谢谢

    奋斗
    2017-03-24 20:47:36

    <?php include("301.php"); //301重定向 ?>

    index.php 加<?php include("301.php"); //301重定向 ?> 访问index.php的时候能跳回到带www的网址但是网站打不开了 怎么回事 

    站长回复: 有几种可能,不带www的网址可以跳转到带www的网址,但是你没有做条件判断,判断当前访问的网址是不是带www的,所以你的页面在一直重复跳转,造成死循环了,自然就无法访问了。
    天天
    2016-10-08 13:34:54

    按照说的做了,但是没有任何效果!

    站长回复: 跟你的网站程序有关,以及你的具体操作步骤也有关系。
    小鱼儿
    2016-08-27 10:29:30

    <?php
    Header("HTTP/1.1 301 Moved Permanently");
    Header("Location: http://www.icoa.cn");
    ?>
    输入这个代码跳转以后出现一下页面怎么解决:

    You don't have permission to access / on this server.

    站长回复: 已经通过微信帮这位朋友解决了,有几个需要注意的,当然如果你能完整的看完这篇文章,并且看懂了,那么基本上不会出现这种情况。

    这位朋友之所以出现这种情况,新域名没有绑定网站……

    也就是新域名直接输入也是打不开的,跟跳转无关。另外这个朋友后来又出现了一个错误,就是把新旧域名解析到同一个目录,而采用的还是这个代码,最终造成死循环了,当然就打不开了。

    所以还是好好看文章吧,如果理解了,就不会出现问题了。
    不错
    2016-06-02 11:36:45

    不错

    亦云菌
    2016-04-08 23:21:18

    我发现这样做虽然www.a.com跳转到了www.b.com
    www.a.com/1.html也跳转到了www.b.com/1.html
    但是www.a.com/会跳转到www.b.com百度网站改版会不通过

    站长回复: 带不带/是没有区别的,Chrome浏览器默认是不带/的,IE浏览器是默认带/的。

    这样你试试把这句修改一下:
    $the_url="";//如果是首页,赋值为空

    修改为:
    $the_url="/";//如果是首页,赋值为“/”
    天山童姥
    2016-01-25 17:47:09

    除了可以将icoa.cn跳转到带www的网址,还可以把所有绑定到这个空间的域名跳转到www.icoa.cn。
    请问如果我要将另外两个别的域名都跳转到www.icoa.cn这个域名,我要怎么写这句呢?if($the_host == 'test.baidu.com')//

    站长回复: 没错,把需要跳转的域名写到==后面
    傲天帝国
    2016-01-07 15:16:34

    <?php
    $the_host = $_SERVER['HTTP_HOST'];//取得当前域名

    if($the_host == 'baidu.com')//如果域名不是带www的网址那么进行下面的301跳转
    {
    header('HTTP/1.1 301 Moved Permanently');//发出301头部
    header('Location:http://www.baidu.com');//跳转到带www的网址
    }

    if($the_host == 'test.baidu.com')//如果域名不是带www的网址那么进行下面的301跳转
    {
    header('HTTP/1.1 301 Moved Permanently');//发出301头部
    header('Location:http://www.baidu.com/test');//跳转到带子目录里的网址
    }
    ?>

    站长回复: 你……想表达什么?
    木小羊
    2015-11-11 11:23:38

    你好!<?php include("301.php"); //301重定向 ?>这个放页面最前面,放在index.php文件的具体哪个位置?index.dwt文件又是放在具体哪个位置?实在</head>之前?

    站长回复: 放在index.php的PHP语句最上面就可以,如果是index.dwt之类的是模板不是php程序,放进去是无法执行的。
    [>>>点击查看更多评论]

    版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 | 逍遥峡谷 · 酷品优选
    Copyright©Interstellar Central Occult Agency (I.C.O.A)
    本局纯属虚构,如有雷同,纯属巧合

    冀公网安备13011102001055号 · 冀ICP备06033848号