PHP中的PATH_INFO究竟是什么?

use*_*729 33 php pathinfo

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

我见过PATH_INFO好几次,但还是不知道到底是什么.它有什么作用?

And*_*ore 43

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

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

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

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

Apache核心文档:AcceptPathInfo指令

  • 在阅读完答案之后,可以推断依赖PATH_INFO是一种不好的做法,事实并非如此.PATH_INFO是CGI定义的一部分(如SimonSinCity指出的那样).大多数Web服务器都支持它,而不仅仅是Apache. (12认同)

Sim*_*ity 19

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

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