$ _SERVER 以重复的目录名称返回path

我在访问子域上的$_SERVER['DOCUMENT_ROOT']时看到一个奇怪的行为。 它包含一个不存在的重复的文件夹名称。

以下是$_SERVER的相关输出:

 [DOCUMENT_ROOT] => /var/www/sub.domainname.com/sub.domainname.com [SCRIPT_FILENAME] => /var/www/sub.domainname.com/index.php 

它应该是:

 [DOCUMENT_ROOT] => /var/www/sub.domainname.com 

这是虚拟主机configuration:

 <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName sub.domainname.com DocumentRoot /var/www/sub.domainname.com <Directory /> Options FollowSymLinks AllowOverride All </Directory> <Directory /var/www/sub.domainname.com> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost> 

这个问题可能是由错误配置的web服务器引起的,PHP文档说这$_SERVER['DOCUMENT_ROOT']包含在服务器配置文件中定义的脚本目录。 这可能因此与实际的脚本目录位置不同。

DOCUMENT_ROOT
当前脚本正在执行的文档根目录,如服务器的配置文件中所定义。

来源: PHP保留的变量$_SERVER[]手册页