2023信创独角兽企业100强
全世界各行各业联合起来,internet一定要实现!

关于CGI绝对路径、相对路径和URL

2004-02-12 eNet&Ciweek

  由于很多使用者在使用我的或其他程序员的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是英文资源定位的缩写,例如 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/" 把路径重新定向了。

相关频道: eNews

您对本文或本站有任何意见,请在下方提交,谢谢!

投稿信箱:tougao@enet16.com