从PHP $_SERVER相关参数判断PHP $_SERVER相关参数来验证页面是否重定向的方法
发布于 2014-12-08 22:18:13 | 212 次阅读 | 评论: 0 | 来源: 网友投递
PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php。
本文为大家讲解的是如何从PHP $_SERVER相关参数判断PHP $_SERVER相关参数来验证页面是否重定向的方法,感兴趣同学参考下.
这篇文章主要介绍了如何通过判断PHP $_SERVER相关参数来验证页面是否重定向,但这只是在Apache环境下才有效,下面来具体的看下
如果是http://www.xxx.net/p1141.html形式的URL,可通过$_SERVER['REQUEST_URI']和$_SERVER['QUERY_STRING']值的区别来分析,最主要是如果页面是通过重定向会产生$_SERVER['REDIRECT_QUERY_STRING']和$_SERVER['REDIRECT_URL']两上参数,因此判断页面是否重定向就非常简单,只需要判断这两个值存在的情况就既可,但这只是在Apache环境下才有效。
如果是ISAPI Rewrite环境如何判断?
如果是ISAPI Rewrite环境,虽然不会产生如上$_SERVER['REDIRECT_QUERY_STRING']和$_SERVER['REDIRECT_URL']两上参数,但同样会产生自己独特的参数$_SERVER['HTTP_X_REWRITE_URL'],这个参数只有在ISAPI环境下才会产生,因此使用这个参数就能判断当前的URL是何种形式,方法如下:
$isApi = (isset($_SERVER['HTTP_X_REWRITE_URL']) && strpos($_SERVER['HTTP_X_REWRITE_URL'],'?')) ? TRUE : FALSE;
通过对当前URL显示形式的判断,就能知道程序将如何执行以及是否需要301重定向,如果当前URL是http://www.xxx.net/?=p1141,则需要使用301重定向到http://www.xxx.net/p1141.html,如下:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.xxx.net/p1141.html");
然后再走重定向后程序的流程,这样就保证了页面的统一,同时也解决了ISAPI和Apache的Rewrite循环重定向问题。
ISAPI和Apache是否重定向判断:
ISAPI使用:
$_SERVER['HTTP_X_REWRITE_URL']
Apache使用:
$_SERVER['REDIRECT_QUERY_STRING']或$_SERVER['REDIRECT_URL']
只要掌握$_SERVER各参数的用法,就能轻松解决ISAPI和Apache的Rewrite循环重定向问题。
相关阅读:
从PHP $_SERVER相关参数判断PHP $_SERVER相关参数来验证页面是否重定向的方法
PHP 5.5 创建和验证哈希最简单的方法示例
php实现登录tplink WR882N获取IP和重启的方法
PHP判断FORM表单或URL参数来的数据是否为整数的方法
PHP判断变量是否为0的方法示例讲解
使用php判断网页是否gzip压缩的方法
php中判断数组是一维,二维,还是多维的方法
php mysql 判断update之后是否更新了的方法
php中判断多维数组是否为空的方法
php判断GIF图片是否为动画的方法
CMS中PHP判断系统是否已经安装的方法示例
PHP判断文章里是否有图片的方法