使用PHP进行HTTP重定向

admin 2014年10月30日 网络维护 990次阅读 查看评论

  使用PHP进行HTTP重定向


  在Google里搜“PHP 重定向”,这篇日记的排名在第四。可是这篇写得其实太烂了…重写一篇…

  甚么是HTTP重定向?

  当你访问www.cnv.pw时,地址栏的地址会自动变成cnv.pw。当你访问ye.gl的时刻,地址栏的地址会酿成cnv.pw。这就是HTTP重定向

  一个HTTP要求,返回的HTTP Response Header里,第一行是HTTP的状态码。正常环境下,HTTP请求返回的状态码是200 OK。

  正常的HTTP请求,返回200 OK:

  其他的比力知名的还有例如:

  •   404 Not Found

  •   301 Moved Permanently

  •   302 Found

  •   500 Internal Server Error

  HTTP重定向就是经由过程301和302两种状况码来实现的。

  302是姑且重定向的意思。暗示被访问页面由于各类需要被且则跳转到其他页面。具体的例子是访问 http://cnv.pw/recursion.php

  阅读器在收到302 Found的状态码之后会在返回的HTTP Response Header中查找Location字段,然后会见对应地址。在这个例子中,浏览器就会拜候 http://cnv.pw/recursion.php (嗯这是一个递归,你懂的…)

  301是永远重定向。如许的例子很好找。例如 http://谷歌.com

  一样,浏览器在发现301的状态码之后会查找Location字段,然后接见阿谁地址。

  Location字段的格局很随便,既可以是绝对地址,也能够是相对地址,还可所以相对根目次的地址。以下Location字段都是正当的:

  Location: http://cnv.pw/

  Location: /test/index.php

  Location: index.php

  Location: ../index.php

  301重定向和302重定向在SEO和缓存上是有很是年夜区此外。

  对SEO也就是seo,一个页面302重定向到另外一个页面,新页面的PageRank不会受原页面影响。而一个页面301重定向到另一个页面,原页面的PageRank会被传递到新页面。所以对于一个网站进行域名转换,最好的方式就是使用301重定向,在颠末一段时候之后可以不损掉PR地将全站转移到新域名下。

  对于HTTP署理办事器例如squid来讲,假如一个页面是302重定向到新页面而且没有指定Expire HTTP头,squid将不缓存这个信息,也就是说每次用户通过代办署理请求时城市从头获得一遍。而对于301重定向,squid可以将成果缓存以便快速响应下一个请求不异页面的用户。

  PHP里的302重定向极度简单,只要在返回的HTTP Response Header里添加Location字段,PHP将主动返回302状态码。例如:

< ?php header("Location: http://cnv.pw/recursion.php"); ?>

  这段代码将自动重定向到http://cnv.pw/recursion.php

  而301重定向则略微有点复杂,需要直接将301状态码用header函数返回给用户。例如:

< ?php header( "HTTP/1.1 301 Moved Permanently" ); header( "Location: http://cnv.pw/" ); ?>

  注重的是,跳转不是在收到response header的时辰顿时进行,也就是说页面的残剩内容会被下载来之后浏览器才会跳转。新手常犯的一个毛病是,在逻辑判断时对合适前提的情形进行header跳转之后,忘了在之后加上exit(),导致错误。例如,用user_login()判定用户是不是进行了登录,若是未登录则跳转到登录页面。代码以下:

if(!user_login()){ header("Location:login.php"); } //display contents for login users.

  这里,轻易觉得header之后这段代码就竣事了,没有在header以后利用exit()。后面的代码继续被履行,致使未登录用户看到了已登录用户才能看到的内容。

« 上一篇 下一篇 » admin原创文章,转载请注明出处! 标签:

相关日志:

«   2019年11月   »
123
45678910
11121314151617
18192021222324
252627282930
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
文章归档
网站收藏
友情链接
图标汇集
  • 又拍云
  • 订阅ipvb的RSS 2.0聚合