天天看點

關于絕對路徑、相對路徑和URL

引言:由于很多使用者在使用我的或其他程式員的CGI、PHP是把絕對路徑、相對路徑和URL的概念混淆,導緻遇到許多不必要的麻煩,是以我決定寫此文為需要的朋友解惑。

通常我們在安裝使用PHP和CGI時通常都會遇到“絕對路徑”和“相對路徑”這兩個概念,要熟練的操作計算機的目錄戶對于“絕對路徑”和“相對路徑”就應該很熟悉才對。我想可能由于近幾年學習計算機的人都是使用在windows系統,在管理檔案時都是對“檔案夾”(其實“檔案夾”很多時候就是一個目錄)進行操作,很少深入了解檔案的目錄的概念以至遇到在WEB伺服器上安裝程式時往往搞錯。對于DOS和UNIX的使用者來說,目錄應該是一個很熟悉的概念才對。

所謂“絕對路徑”就是從根目錄開始一直到該目錄的全程的路徑,這樣說可能太抽象,舉個例子:"c:\apache\htdocs\cgi-bin\test.cgi"就是檔案test.cgi的絕對路徑。在UNIX下的一個例子是:

"/usr/local/apache/htdocs/cgi-bin/test.cgi"

所謂“相對路徑”就是相對于目前目錄的路徑,舉個例子:例如目前目錄目錄是 "c:\apache\htdocs" 你要浏覽 c:\apache\htdocs\cgi-bin\test.cgi檔案的内容,那麼隻需在指令行裡輸入 "type cgi-bin\test.cgi" 就可以了,要是在"c:\apache\htdocs\cgi-bin\xyz"下呢,那麼就是 "type ..test.cgi"。UNIX下“相對路徑”的概念也一樣,因為windows的目錄的概念就是從UNIX來的。

URL是英文資源定位的縮寫,例如 [url]http://zjxyz.uhome.net/[/url] 就是一個URL 但是URL的應用範圍不止我們最常用的WEB伺服器,它還可以定位其他的網上的資源,如FTP等。不過我們下面還是以 WEB 服務為例。

通常WEB伺服器都會以計算機上某個目錄作為該網站的根目錄,例如一個安裝在UNIX系統/usr/local/apache/目錄下的apache伺服器,網站預設根目錄是 /usr/local/apache/htdocs/ ,我們可以用URL [url]http://www.hostname.net/[/url] 來通路該目錄的下的檔案,如果我們在 "htdocs" 下建立一個xyz的子目錄,那麼我們可以用 [url]http://www.hostname.net/xyz/[/url] 來通路目錄 xyz 下的檔案。有時我們會發現 /usr/local/apache/cgi-bin/ 是這樣通路的 [url]http://www.hostname.net/cgi-bin/[/url] 明明 cgi-bin 不在 htdocs 目錄下,為何又能這樣樣通路呢?這是由于apache伺服器的配置檔案裡有一句裡有 ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" 把路徑重新定向了。

繼續閱讀