关于pathinfo:PHP中的PATH_INFO到底是什么?

What exactly is PATH_INFO in PHP?

all external URLs look like 'module/action?key1=param1'. No customization possible--but it's fast.
The difference is that the first uses PHP's GET, and the second uses PATH_INFO.

我已经看过几次PATH_INFO,但是仍然不知道它到底是什么。 它有什么作用?


实际上,PATH_INFO与服务PHP页面的Apache Web服务器有关,而与PHP本身无关。

PATH_INFO是Apache在AcceptPathInfo指令打开时设置的环境变量。 它将包含尾随路径名信息,该路径名信息跟随现有目录中的实际文件名或不存在的文件,无论请求是接受还是拒绝。 然后将环境变量传递给负责渲染页面的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


由于变量PATH_INFO是CGI定义的一部分,因此您还应该在其中查看一下;)

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