PHP_SELF和DOCUMENT_ROOT因浏览器而异

时间:2019-11-11 15:17:20

标签: php google-chrome server webserver

今天,我偶然发现了一件非常奇怪的事情。 $ _SERVER的超变量内容取决于浏览器。

我在Chrome和Firefox上调用了完全相同的请求,只是在var_dump中输出$ _SERVER变量。

无论出于何种原因,DOCUMENT_ROOT都不相同,而PHP_SELF也不同。

Chrome 80和Opera 64:

["DOCUMENT_ROOT"]=>
  string(15) "C:/xampp/htdocs"
["SCRIPT_NAME"]=>
  string(23) "/dev/project123/root.php"
["PHP_SELF"]=>
  string(23) "/dev/project123/root.php"

Firefox 70和Internet Explorer 11和Edge:

["DOCUMENT_ROOT"]=>
  string(15) "C:/xampp/htdocs/dev/project123"
["SCRIPT_NAME"]=>
  string(23) "/root.php"
["PHP_SELF"]=>
  string(23) "/root.php"

有人知道吗,为什么以及如何解决此问题?这是服务器问题吗?

谢谢

1 个答案:

答案 0 :(得分:0)

发现了问题。 “ http://localhost”因浏览器而异。我还不知道,为什么会发生这种情况。

通过所有php文件传递所有内容的.htaccess规则以不同的DOCUMENT_ROOT值结尾。

所以这是另一个问题。 谢谢。 :)