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的不正确做法,这不是一个好方法。 PATH_INFO是CGI定义的一部分(如SimonSinCity所指出)。 大多数Web服务器都支持它,而不仅仅是Apache。
由于变量PATH_INFO是CGI定义的一部分,因此您还应该在其中查看一下;)
https://tools.ietf.org/html/rfc3875#section-4.1.5