2014-06-09 92 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

相關問題