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

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

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

所謂“相對路徑”就是相對于當前目錄的路徑,舉個例子:例如當前目錄目錄是 "c:apachehtdocs" 你要瀏覽 c:apachehtdocscgi-binest.cgi文件的內容,那么只需在命令行里輸入 "type cgi-binest.cgi" 就可以了,要是在"c:apachehtdocscgi-binxyz"下呢,那么就是 "type ..test.cgi"。UNIX下“相對路徑”的概念也一樣,因為windows的目錄的概念就是從UNIX來的。

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

通常WEB服務器都會以計算機上某個目錄作為該網站的根目錄,例如一個安裝在UNIX系統/usr/local/apache/目錄下的apache服務器,網站默認根目錄是 /usr/local/apache/htdocs/ ,我們可以用URL http://www.hostname.net/ 來訪問該目錄的下的文件,如果我們在 "htdocs" 下建立一個xyz的子目錄,那么我們可以用 http://www.hostname.net/xyz/ 來訪問目錄 xyz 下的文件。有時我們會發現 /usr/local/apache/cgi-bin/ 是這樣訪問的 http://www.hostname.net/cgi-bin/ 明明 cgi-bin 不在 htdocs 目錄下,為何又能這樣樣訪問呢?這是由于apache服務器的配置文件里有一句里有 ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" 把路徑重新定向了。 
北斗有巢氏 有巢氏北斗