PHP中的PATH_INFO究竟是什么?

时间:2010-02-14 17:13:30

标签: php pathinfo

  

所有外部URL看起来都像'module / action?key1 = param1'。无法定制 - 但速度很快。   区别在于第一个使用PHP的GET,第二个使用PATH_INFO。

我已经多次见过PATH_INFO,但仍然不知道究竟是什么。它做了什么?

2 个答案:

答案 0 :(得分:43)

实际上,PATH_INFO与提供PHP页面的Apache Web Server有关,而不是PHP本身。

PATH_INFO是Apache在AcceptPathInfo directive打开时设置的环境变量。它将包含跟踪现有目录中的实际文件名或不存在文件的尾随路径名信息,无论是接受还是拒绝请求。然后将环境变量传递给负责呈现页面的Apache / CGI模块。

可以使用$_SERVER['PATH_INFO']在PHP中访问该变量。

例如,假设位置/test/指向仅包含单个文件here.html的目录。然后,/test/here.html/more/test/nothere.html/more的请求都将/more收集为PATH_INFO

  

Apache Core Documentation: AcceptPathInfo Directive

答案 1 :(得分:19)

由于变量PATH_INFO是CGI定义的一部分,你还应该看一下;)

https://tools.ietf.org/html/rfc3875#section-4.1.5