2014-06-09 63 views
1

我在访问子域上的$_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 

这里是虚拟主机配置:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    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> 
+1

这就是为什么你要定义一个常量,比如'ROOT'并依赖于一个,而不是'DOCUMENT_ROOT' – Yang

+3

人照顾解释他们的下票? –

+0

我不明白为什么这个问题得不到解决。他们可能只是为了好玩。 +1问题 – Yang

回答

2

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

DOCUMENT_ROOT
在其下当前脚本执行时,作为服务器的配置文件中定义的文档根目录。

来源:PHP Reserved Variables $_SERVER[] Manual Page

相关问题