php 重定向 参数吗,从PHP $_SERVER相关参数判断PHP $_SERVER相关参数来验证页面是否重定向的方法...

本文介绍如何利用PHP $_SERVER数组判断页面是否重定向,包括Apache和ISAPIRewrite环境下的不同策略。重点讲解了$_SERVER['REDIRECT_QUERY_STRING']、$_SERVER['REDIRECT_URL']和$_SERVER['HTTP_X_REWRITE_URL']参数的使用,以及如何根据这些参数进行301重定向和解决循环问题。
摘要由CSDN通过智能技术生成

从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判断文章里是否有图片的方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值