zoukankan      html  css  js  c++  java
  • 学习PHP 301跳转的方法

    发布:JB01   来源:脚本学堂     【  】本文详细介绍了,在php编程中实现301跳转,即301永久重定向的方法,感兴趣的朋友可以参考学习下。
    本文转自:http://www.jbxue.com/article/14040.html

    本节内容:
    php实现的301跳转。

    什么是301转向?

    301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

    为什么要做网址转向?

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

    company.com
    company.net
    company.org
    company.com.cn
    company.cn
     

    等。

    很自然这些域名全部指向一个网站。如用company.com为主域名,其它域名就可以转向到company.com。

    或注册了公司全称域名longcompanyname.com,但太长 ,你也注册了缩写域名方便用户记住lcn.com,其中一个做主域名,另一个就可以转向到主域名。

    为什么要用301转向?

    网址转向方法主要包括:301转向,302转向,JavaScript转向,PHP/ASP/CGI转向,META REFRESH网页META刷新,等。302转向可能会有URL规范化问题。其它方法都是常用的作弊手法,当然不是说不可以正当地用,方法本身没有错,但被作弊者用多了,搜索引擎对这些可疑的转向都很敏感。何必冒险呢。

    当网页A用php 301重定向转到网页B时,搜索引擎可以肯定网页A永久的改变位置,或实际上不存在了,搜索引擎就会把网页B当作唯一有效目标。
    优点:
    第一,没有网址规范化问题,第二,也很重要的,网页A的PR网页级别会传到网页B。

    很多时候其它网站会链接到:
    http://jbxue.com
    http://www.jbxue.com/index.html
    http://jbxue.com/index.html

    而不是我们希望或常用的:
    http://www.jbxue.com

    这样链接的PR也会传递到所有URL,如果用php 301跳转把前三个URL转到:
    http://www.jbxue.com

    PR也就集中在网页http://www.jbxue.com了。

    怎样做301转向

    如果你用的是Unix/Linux主机,可以用file.gif文件(Unix/Linux中用于目录特定指令如密码,转向,错误处理等的文件)。

    比如把/old.htm转到http://www.jbxue.com/new.htm,可以用这个指令:
     

    复制代码代码示例:
    redirect 301 /old.htm http://www.jbxue.com/new.htm

    redirect permanent /old.htm http://www.jbxue.com/new.htm

    如果要把所有http://jbxue.com形式的URL用301重定向转到 http://www.jbxue.com,包括:
     

    复制代码代码示例:

    http://jbxue.com/about.htm
    转到 http://www.jbxue.com/about.htm

    http://jbxue.com/dir/index.htm

    转到 http://www.jbxue.com/dir/index.htm

    等等,还要用到mod_rewrite:
     

    复制代码代码示例:
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^jbxue.com [NC]
    RewriteRule ^(.*)$ http://www.jbxue.com/$1 [L,R=301]

    如果使用 Windows主机,应该在控制面板做301转向设定。

    补充 :在网址规范化评论里回答石头王的问题,可能对大家有帮助:

    据我所知,HTML无法做301转向。在HTML里只能做JS或META REFRESH,但不是301转向。
    HTML一被读取,就已经返回200 OK状态码了。

    PHP可以做301转向:

    PHP代码:
     

    复制代码代码示例:
    <?
    Header( “HTTP/1.1 301 Moved Permanently” );
    Header( “Location: http://www.jbxue.com” );
    ?>

    另外,DOThtaccess文件只是一个普通文字文件,你用Notepad建这个文件,放上指令,存在你帐号的根目录下就行了。
    不需要修改Apache。

  • 相关阅读:
    codeforces 980A Links and Pearls
    zoj 3640 Help Me Escape
    sgu 495 Kids and Prizes
    poj 3071 Football
    hdu 3853 LOOPS
    hdu 4035 Maze
    hdu 4405 Aeroplane chess
    poj 2096 Collecting Bugs
    scu 4444 Travel
    zoj 3870 Team Formation
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3455053.html
Copyright © 2011-2022 走看看