2016-12-29 46 views
0

所以,我做了一個簡單的PHP登錄,但是當我試圖這樣的重定向:

$path = $_SERVER["DOCUMENT_ROOT"]; 
header("Location: $path/admin/index.php"); 

它似乎喜歡它什麼也沒做,但我刷新頁面後,我登錄
後,我改變了我的代碼如下:。

header("Location: ../admin/index.php"); 

它的工作原理。

難道有人請給我解釋一下嗎?

Ps。對不起喜歡/var/www/html/yourfolder/我的英語不好

+0

echo'$ path/admin/index.php'並看到值 –

+0

有了@sidyll的評論,現在就有意義了。謝謝。 – Fusyoo

回答

1

頭被髮送到瀏覽器,所以它不是一個內部服務器機動。由於它不是內部重定向,所以不處理內部路徑。當您使用DOCUMENT_ROOT時,您將獲得內部服務器路徑到您的文件所在的目錄。

如果要引用網站的根目錄作爲URL,請使用/

header("Location: /admin/index.php"); 
header("Location: /"); # go to homepage, for example 

..工作,因爲你可能是一個子目錄,..被翻譯成這也正是admin是父目錄。

1
$_SERVER["DOCUMENT_ROOT"]; 

返回路徑,但你必須重定向到website.com/yourfolder/localhost/yourfolder/

因此,這將無法正常工作。

1

您是否嘗試過打印$ path的值?

$ path的值相對於實際文件位置

例如, $path = '/c/inetpub/sites/example/main/'

你可能想要的東西,像'/c/inetpub/sites/example/''/c/inetpub/sites/example/main/..'

+0

「_ $的值是相對於實際文件的位置_」否,「$ path」是他的文檔根目錄是固定的。不相對於任何事物。 – sidyll