为什么www.example.com/index.php/my/path/here由index.php处理?

Vla*_*sny 3 php apache friendly-url

我只是很好奇,如何调用apache的功能来指导这样的请求

www.example.com/index.php/my/path/here
Run Code Online (Sandbox Code Playgroud)

到文件index.php?在第一时刻,您可能会认为,如果此请求导致404错误页面是正确的,因为站点根目录下没有名为index.php的文件夹.

顺便说一句,有没有可能关闭这个Apache功能(如果它是一个功能),这样的请求真的最终得到404?

cle*_*tus 10

这不是URL重写功能.或者至少它并不需要如此.请参阅AcceptPathInfo指令:

此指令控制是否接受或拒绝包含跟随实际文件名(或现有目录中不存在的文件)的尾随路径名信息的请求.尾随路径名信息可供PATH_INFO环境变量中的脚本使用 .

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

它最初是一个CGI环境变量.

  • PATH_INFO

客户端给出的额外路径信息.换句话说,可以通过虚拟路径名访问脚本,然后在此路径末尾添加额外信息.额外信息以发送方式发送 PATH_INFO.如果服务器在传递给CGI脚本之前来自URL,则应该对此信息进行解码.