首页 > 解决方案 > PHP_SELF 和 DOCUMENT_ROOT 因浏览器而异

问题描述

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

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

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

铬 80 和歌剧 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"

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

谢谢

标签: phpgoogle-chromeserverwebserver

解决方案


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

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

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


推荐阅读