在我们使用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(); }