重定向Redirect函数实现的原理和方法
2017-02-07 10:44
459 查看
在我们使用php框架进行开发工作中,都会发现很多框架中存在着这么一个函数:redirect(),比如ThinkPHP和Laravel框架等;这个函数就是用于将重定向,例如在我们进行登录操作时,登录信息验证不正确,我们就会使用重定向让用户重新访问登录页。
1、重定向的原理
该方法通过修改http协议的header部分,对浏览器下达重定向指令的,让浏览器对在location中指定的url提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的urls。如果传递到该方法的参数是一个相对的url,那么web container在将它发送到客户端前会把它转换成一个绝对的url。
2、实现方式
在这里以php语言进行实现。
<?php
/**
* =======================================
* Created by Zhihua_W.
* Author: Wei ZhiHua
* Date: 2017/2/7 0007
* Time: 上午 10:21
* Project: CSDN
* Power: 重定向实现
* =======================================
*/
/**
* 重定向实现
* @param string $url
*/
function redirect($url = '')
{
if (empty($url)) {
if (!empty($_REQUEST['ref_url'])) {
$url = $_REQUEST['ref_url'];
} else {
$url = getReferer();
}
}
header('Location: ' . $url);
exit();
}
1、重定向的原理
该方法通过修改http协议的header部分,对浏览器下达重定向指令的,让浏览器对在location中指定的url提出请求,使浏览器显示重定向网页的内容。该方法可以接受绝对的或相对的urls。如果传递到该方法的参数是一个相对的url,那么web container在将它发送到客户端前会把它转换成一个绝对的url。
2、实现方式
在这里以php语言进行实现。
<?php
/**
* =======================================
* Created by Zhihua_W.
* Author: Wei ZhiHua
* Date: 2017/2/7 0007
* Time: 上午 10:21
* Project: CSDN
* Power: 重定向实现
* =======================================
*/
/**
* 重定向实现
* @param string $url
*/
function redirect($url = '')
{
if (empty($url)) {
if (!empty($_REQUEST['ref_url'])) {
$url = $_REQUEST['ref_url'];
} else {
$url = getReferer();
}
}
header('Location: ' . $url);
exit();
}
相关文章推荐
- MmMapIoSpace以及MmUnmapIoSpace,VirtualAlloc和VirtualCopy 函数的实现原理以及实现方法
- printf 函数的原理以及在单片机上重定向至LCD12832的实现
- linux下通过dup2标准输出重定向查看系统进程方法(也是popen函数实现的方法)
- 301 Redirect 资源永久重定向的实现方法
- MmMapIoSpace以及MmUnmapIoSpace,VirtualAlloc和VirtualCopy 函数的实现原理以及实现方法
- C语言中strtok使用方法与原理,以及自实现函数功能
- Response.RedirectPermanent() 方法实现301永久性重定向
- ThinkPHP框架使用redirect实现页面重定向的方法实例分析
- MmMapIoSpace以及MmUnmapIoSpace,VirtualAlloc和VirtualCopy 函数的实现原理以及实现方法
- MmMapIoSpace以及MmUnmapIoSpace,VirtualAlloc和VirtualCopy 函数的实现原理以及实现方法
- 一种快速的未登陆词识别方法(原理和实现)
- 深入浅出Dll(介绍函数导出、类导出、钓子dll、不同语言混合编程方法、插件等的实现方法)
- 301 重定向(iis,Apache,asp,php,ColdFusion,旧域名),永久重定向实现方法。
- .Net 加密原理,方法体加密信息对应关系的实现(一)
- 301 Redirect 永久重定向的实现
- VS2005网站内实现地址重定向的方法。
- ruby,用类方法实现类初始化函数的需求变化
- 在VBScript中实现-函数/方法名作为参数传入另一个函数
- 一个函数返回两值的通用实现方法(简单,备忘)
- 汇编:简约不简单的不定参函数实现方法