URL路由之PATH_INFO
在PHP中实现URL路由的 可以用到两个服务器环境变量
$_SERVER["REQUEST_URI"];
$_SERVER['PATH_INFO'];
其中$_SERVER["REQUEST_URI"];数组变量存储的是访问此页面所需的 URI
通俗的说$_SERVER["REQUEST_URI"];取得的是 除去域名外。从域名的反斜杠开始一直到网址最后部分的数据
例如:
uri/2.php包含如下代码
<?
$path= $_SERVER["REQUEST_URI"];
print_r($path);
?>
我们通过下面的地址访问。
http://localhost/uri/2.php/index/hello?a=1
得到的输出为: /uri/2.php/index/hello?a=1
如果通过rewrite 把2.php屏蔽掉。则通过http://localhost/uri/index/hello?a=1 方式访问2.php文件 则得到如下输出
/uri/index/hello?a=1
下面再说说$_SERVER['PATH_INFO']
$_SERVER['PATH_INFO'] 我在手册上没看到介绍,在网上也没找到相关资料。通过实验得出 $_SERVER['PATH_INFO'] 的作用为:获取本执行文件名后面的路径及参数信息
同样举个例子
在uri目录下 建立2.php文件 代码如下
<?
$path= $_SERVER['PATH_INFO'];
print_r($path);
?>
通过http://localhost/uri/2.php/index/hello?a=1 访问得到如下输出
/index/hello 这里 没有?a=1
通过rewrite屏蔽掉2.php 通过http://localhost/uri/index/hello?a=1 访问得到的输出为空白的
也就是说$_SERVER['PATH_INFO'] 在rewrite下失去作用了。