2010-06-14 142 views
0

我正在CMS網站的網站上工作。我在我的頁腳文件中提供了一個鏈接,例如blogs.php。這個網頁是在像「http://www.example.com/new_cms/blogs.phpPHP網站的絕對URL路徑

根當我移動到其他文件鏈接,如「http://www.example.com/new_cms/forums」頁腳鏈接更改爲「http://www.example.com/new_cms/forums/blogs.php」,但blogs.php頁面所在的路徑「http://www.example.com/new_cms/」。我嘗試了不同的$ _SERVER []變量,但沒有運氣得到上述路徑「http://www.example.com/new_cms/」意味着服務器名稱與項目當前運行的目錄。

任何人有想法如何完成它將是一個很大的幫助。

感謝

+0

您能否提供您用於顯示鏈接的代碼?您可以將它編輯成我們的問題。 – 2010-06-14 07:56:18

回答

0

您可以使用絕對URL或嘗試用條件重寫您的URL。

2

這可能是因爲你的鏈接中有一個相對URL,就像這樣:

<a href="blogs.php">Blogs</a> 

所以它會在當前目錄下的文件blogs.php。

如果你想該鏈接指向blogs.php文件,它是在new_cms文件夾,你必須使用一個像這樣的鏈接:

<a href="/new_cms/blogs.php">Blogs</a> 
+0

感謝朋友對你的所有幫助:)我想我必須使用我的www根站點目錄內的目錄的靜態路徑。 – kakaajee 2010-06-15 04:56:15

0

您可以獲取服務器名稱從$_SERVER['SERVER_NAME']即在服務器/虛擬主機配置中指定的規範服務器名稱。除此之外,$_SERVER['HTTP_HOST']可爲您提供HTTP request header field Host中指定的主機。一般來說,這兩個值是相同的。但是,由於兩者都可以通過用戶輸入進行操作(請參閱Chris Shiflett’s SERVER_NAME Versus HTTP_HOST),因此在使用這些設備時需要小心。

至於路徑,您可能需要指定我們自己的基本URL路徑。因爲如果您想到URL重寫技術,則物理路徑(文件系統路徑)不需要與邏輯路徑(URL路徑)相同。因此,您無法從請求的URL路徑,腳本文件路徑和文檔根目錄獲取邏輯基本路徑。