Guy*_*Guy 8 php url slash http-status-code-404
我有一个简单的问题,但无法在任何地方找到答案
说我有一个网站"mysite.com".我可以通过输入"mysite.com"或"mysite.com/index.php"来访问索引页面.这工作正常...但是,当我尝试去"mysite.com/index.php/"页面加载,但不正确.究竟发生了什么?我认为它应该返回404错误,因为index.php将被视为(非现有的)目录(即我认为它会尝试找到"mysite.com/index.php/index.php").事实显然并非如此.有人可以告诉我究竟发生了什么吗?当您在斜杠后面添加任何内容时也是如此,即"mysite.com/index.php/hello"
谢谢.
这是由于您的 Apache 环境变量 PATH_INFO 所致。
路径信息
实际上,PATH_INFO 与提供 PHP 页面的 Apache Web 服务器有关,而不是与 PHP 相关。
PATH_INFO 是 Apache 在 AcceptPathInfo 指令打开时设置的环境变量。它将包含跟随实际文件名(或现有目录中不存在的文件)的尾随路径名信息,将被接受或拒绝。然后环境变量被传递到负责渲染页面的 Apache/CGI 模块。
在 PHP 中可以使用 $_SERVER['PATH_INFO'] 访问该变量。
例如,假设位置 /test/ 指向仅包含单个文件 here.html 的目录。然后对 /test/here.html/more 和 /test/nothere.html/more 的请求都将 /more 收集为 PATH_INFO。
这个答案是从安德鲁·摩尔 链接复制到原始答案的