今天,我偶然发现了一件非常奇怪的事情。 $ _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"
有人知道吗,为什么以及如何解决此问题?这是服务器问题吗?
谢谢
答案 0 :(得分:0)
发现了问题。 “ http://localhost”因浏览器而异。我还不知道,为什么会发生这种情况。
通过所有php文件传递所有内容的.htaccess规则以不同的DOCUMENT_ROOT值结尾。
所以这是另一个问题。 谢谢。 :)