当前位置: 首页 > 未分类>阅读正文

$_SERVER[‘PATH_INFO’]的使用

2022.7.24 朱丰华 312 次 留下评论 592字

在PHP框架中,此变量很可能使于底层URL解析。

$_SERVER[‘PATH_INFO’]是真实脚本名称(PHP_SELF)之后并且在查询语句(query string)之前的路径信息

/index.php/some/stuff?foo=bar 被访问的,那么 $_SERVER['PATH_INFO'] 将包含 /some/stuff

对于简单的框架美化URL,可以先通过index.php进行路由解析。

未开启伪静态时,基本写成 index.php/module/demo-12.html?test=1这样的路径。

一旦开启伪静态(全部路由至index.php),就可以省略 index.php,此时就变成 /module/demo-12.html?test=1美化后的路径。

这样的设计比较简单,既达到了美化效果,又无需太大变动(有无伪静态都可以兼容)。

(注意的是,PATH_INFO在NGINX中不被支持,默认无法使用,而大部分APACHE默认支持)

如果希望在没有伪静态时且不进行额外配置时兼容性更高,还是用query string吧,以wordpress为例,?cat=xxx表示分类目录,?p=18表示文章页面。

总的来说,无论什么框架,index.php中进行全部路径的路由是共识,PATH_INFO虽然比query string美观一些但并不是一个通用参数(PHP特有,且只被apache默认接受)。

本篇完,还有疑问?留下评论吧

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注