发布: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。

学习PHP 301跳转的方法的更多相关文章

  1. IIS 使用 web.config 实现从 http 自动301跳转到 https 的方法

    现在很多网站为了安全,开启了 SSL 连接,那么开启 SSL 连接之后,如何将对应的 http 访问自动跳转到 https 上呢?之前介绍了 IIS 用 web.config 做域名的301跳转的方法 ...

  2. phpcms9添加301跳转

    在做301跳转时遇到了"错误 310 (net::ERR_TOO_MANY_REDIRECTS):重定向过多."的问题,小编在这里把处理方法简单给大家写出来希望可以帮助到大家,另外 ...

  3. 301跳转:IIS服务器网站整站301永久重定向设置方法(阿里云)

    欢迎来到重庆SEO俱乐部:搜索引擎优化学习交流QQ群224306761. 承接:seo优化.网站建设.论坛搭建.博客制作.全网营销 博主可接:百度百家.今日头条.一点资讯等软文发布,有需要请联系PE! ...

  4. 【Nginx】服务器中HTTP 301跳转到带www的域名的方法

    从nginx的官方文档 documentation, 正确的nginx https 301跳转到带www域名方法的方法如下: HTTP 301跳转到带www域名方法 需要两个server段. serv ...

  5. WordPress换域名的301跳转方法(经典)

      一.Linux 主机,这个最简单,修改 .htaccess 把 .htaccess 文件 WordPress 部分修改成下面样子 # BEGIN WordPress <IfModule mo ...

  6. IIS 301 跳转

    IIS设置301重定向 IIS服务器下做301永久重定向设置方法. IIS6设置301重定向: 1.新建一个站点,对应目录如E:\wwwroot\301web.该目录下只需要1个文件,即index.h ...

  7. 转:HTTP 301 跳转和302跳转的区别

    301和302 Http状态有啥区别?301,302 都是HTTP状态的编码,都代表着某个URL发生了转移,不同之处在于: 301 redirect: 301 代表永久性转移(Permanently ...

  8. Apache环境.htaccess伪静态301跳转(www与不带www)

    一般而言,我们使用的301跳转就是WWW与不带WWW域名之间的跳转,用行话说就是权重要归一.对于我们使用Apache环境的来说其实相对nginx比较简单,因为只需要我们在网站根目录有.htaccess ...

  9. IIS7.5全站301跳转,内页+带参数url,这才是真正的全站跳转

    说好的转型安全领域,可是我还是忍不住要给大家分享这个教程.因为这个问题很常见,大部分人都遇到了(可能你没注意),困扰了我很久,相信这是一篇真正适合你的IIS301跳转教程. 背景 说到301跳转,作为 ...

随机推荐

  1. PowerDesigner实用技巧小结(2)

    PowerDesigner实用技巧小结 1.ORACLE数据库建模时,由于ORACLE的表名.字段名如果是小写会有一定的麻烦,需要将小写转化为大写? (1)在打开pdm的情况下,进入Tools-Mod ...

  2. java统计程序运行的时间

    耗时统计 第一种是以毫秒为单位计算的.long startTime = System.currentTimeMillis();    //获取开始时间 //程序做一些功能性的操作doSomething ...

  3. C# 导入文件日期格式(dd/MM/yyyy)

      最近项目导入数据日期变成了这样 这是因为转换成了美国时间 美国时间格式:MM/dd/yyyy 英国时间格式:dd/MM/yyyy     避免导入出现这个问题的话就需要将excel文档单元格样式设 ...

  4. Java 实现组合(Composite)模式

    类图 /** * 树 总体 * * @author stone * */ public class Tree { private TreeNode root; //根节点 public Tree(St ...

  5. (BUG已修改,最优化)安卓ListView异步加载网络图片与缓存软引用图片,线程池,只加载当前屏之说明

    原文:http://blog.csdn.net/java_jh/article/details/20068915 迟点出更新的.这个还有BUG.因为软引应不给力了.2.3之后 前几天的原文有一个线程管 ...

  6. python实现的基于TCP的JSON数据通信

    用Python写的一个多线程TCP通信实例,实现了JSON数据的传输. 闲言少述,直接上代码 ​ 一.client #!/usr/bin/env python # -*- coding:utf-8 - ...

  7. Log4j配置具体解释

    #配置Logger #--log4j.rootLogger=[level], appenderName1, appenderName2, ... #level分为: # FATAL : 0 # ERR ...

  8. iOS之在内存中绘图

    与直接在UIView控件上绘图不同,在内存中绘图时,需要开发者自己准备绘图环境,Quartz 2D提供了一个非常便捷的函数:UIGraphicsBeginImageContext(CGSize siz ...

  9. codeblocks 更改颜色主题

    Code::Blocks是一款优秀的C/C++编辑器,但默认的颜色为白底黑字,并且没有自带更多的主题配置.因此,各种颜色主题需要手动配置. 首先关闭codeblocks软件. 下载文件colour_t ...

  10. jquery登录验证插件

    最近写了个登录验证的jquery插件,其中功能还不是很完善,需要进一步改进,先放出来看看先. /** * 功能描述:本模块实现普通网站登录验证,以后可以添加二维码验证,以及第三方帐号登录验证 * 关联 ...