2016-02-27 70 views
1

我曾經有過我的網站就像一個域的根網址:www.mydomain.com
但現在我已經創建了一個子域「測試」:www.test.mydomain.com,我感動了整個項目文件存在。PHP如何獲得一個子

到目前爲止好,問題是,在我的PHP文庫,其中我打電話數據庫連接等,我用的是$_SERVER['DOCUMENT_ROOT']使我有URL沒有子域,e.x.

$file = $_SERVER['DOCUMENT_ROOT'];//gives me www.mydomain.com 

但我需要與子域,以獲得根,像:www.test.mydomain.com

我不想做一個把戲喜歡拆分網址,並添加子域名事情。

任何幫助,將不勝感激。

+0

可能是複製http://stackoverflow.com/questions/5292937/php-function-to-get-the-subdomain-of-a-url –

+0

'$ _SERVER ['DOCUMENT_ROOT']'沒有得到任何**網址**。它獲得當前站點文檔根目錄的**絕對路徑**。要獲得當前主機,你必須使用'$ _SERVER ['HTTP_HOST']' – fusion3k

回答

2

你可以嘗試兩種:

$_SERVER["SERVER_NAME"] 

$_SERVER['HTTP_HOST'] 

都返回域與子域。


$_SERVER["SERVER_NAME"]

下當前運行腳本所在服務器主機的名稱。如果腳本在虛擬主機上運行,​​則這將是爲該虛擬主機定義的值。

$_SERVER['HTTP_HOST']

主機的內容:從當前請求頭,如果存在一個。

您可以在HTTP_HOST vs. SERVER_NAME$_SERVER["SERVER_NAME"]$_SERVER['HTTP_HOST']之間的區別閱讀起來。在文檔

下當前運行腳本所在的文檔根目錄指出,作爲服務器的配置文件中定義

$_SERVER['DOCUMENT_ROOT']將無法​​正常工作。

有關$_SERVER的更多信息,請致電http://php.net/manual/en/reserved.variables.server.php

2

$_SERVER['DOCUMENT_ROOT']確實不是包含服務器名稱!它包含 - 如名稱所示 - DOCUMENT_ROOT。這是您的網絡服務器所在的文件系統啓動目錄。

您應該試試$_SERVER['SERVER_NAME']。如果您的虛擬服務器設置正確,這應該工作。

0

最後,經過兩個小時的搜索,我對系統管理員說話,他清除了他實際創建了一個別名域,它實際上的反應如下:www.test.mydomain.com

我想這就是爲什麼我得到www.mydomain.com沒有子域當我打電話$_SERVER['DOCUMENT_ROOT']

謝謝,案件關閉。