概述
Internet上的信息資源分布在各個Web站點,要找到所需信息就必須有一種確定信息資源位置的方法,這種方法就是統一資源定位符URL(Uniform Resource Locator)。
URL(Uniform/Universal Resource Locator的縮寫,統一資源定位符)也被稱為網頁地址,是網際網路上標準的資源的地址(Address)。它最初是由蒂姆·伯納斯·李發明用來作為全球資訊網的地址的。現在它已經被全球資訊網聯盟編制為網際網路標準RFC1738了。
歷史
在網際網路的 歷史上,統一資源定位符的發明是一個非常基礎的步驟。統一資源定位符的 語法是一般的,可擴展的,它使用ASCII代碼的一部分來表示網際網路的地址。統一資源定位符的開始,一般會標誌著一個 計算機網路所使用的 網路協定。統一資源定位符是統一資源標誌符的一個變種。統一資源標誌符確定一個資源,而統一資源定位符不但確定一個資源,而且還表示出它在哪裡。
統一資源定位符不但被用作網頁地址,資料庫終端也使用統一資源定位符伺服器連線其伺服器。實際上任何終端——伺服器程式都可以使用統一資源定位符來連線。
格式
一個完整的URL包括訪問協定類型、主機地址、路徑和檔案名稱。其中“訪問協定類型”表示採用什麼協定訪問哪類資源,以便 瀏覽器決定用什麼方法獲得資源,例如:
http://表示採用 超文本傳輸協定 HTTP訪問 WWW伺服器。
ftp://表示通過檔案傳輸協定 FTP訪問FTP伺服器。
telnet://表示通過遠程登錄協定Telnet進行遠程登錄。
gopher://表示通過gopher協定訪問Gopher伺服器。
“主機地址”表示要訪問的主機的IP位址或域名地址;“路徑和檔案名稱”表示信息在主機中的路徑和檔案名稱,如果預設檔案路徑,則表示定位於Web伺服器的主頁,其檔案名稱通常是index.htm。
分類
絕對URL
絕對URL(absolute URL)顯示檔案的完整路徑,這意味著絕對URL本身所在的位置與被引用的實際檔案的位置無關,
相對URL
相對URL(relative URL)以包含URL本身的資料夾的位置為參考點,描述目標資料夾的位置。如果目標檔案與當前頁面(也就是包含URL的頁面)在同一個目錄,那么這個檔案的相對URL僅僅是檔案名稱和擴展名,如果目標檔案在當前目錄的子目錄中,那么它的相對URL是子目錄名,後面是斜槓,然後是目標檔案的檔案名稱和擴展名。
如果要引用檔案層次結構中更高層目錄中的檔案,那么使用兩個句點和一條斜槓。可以組合和重複使用兩個句點和一條斜槓,從而引用當前檔案所在的硬碟上的任何檔案,
一般來說,對於同一伺服器上的檔案,應該總是使用相對URL,它們更容易輸入,而且在將頁面從本地系統轉移到伺服器上時更方便,只要每個檔案的相對位置保持不變,連結就仍然是有效地。
位符體制
每個統一資源定位符的開始都是該統一資源定位符的體制,其後是按體制不同的部分。以下是一些統一資源定位符體制的例子:
http——超文本傳輸協定資源
https——用加密傳送的超文本傳輸協定
ftp——檔案傳輸協定
mailto——電子郵件地址
ldap——輕型目錄訪問協定搜尋
file——當地電腦或網上分享的檔案
news——Usenet新聞組
gopher——Gopher協定
日常使用
超文本傳輸協定統一資源定位符將從網際網路獲取信息的四個基本元素包括在一個簡單的地址中:
1、傳送協定;
2、伺服器;
3、連線埠號;
4、路徑。
大多數網頁瀏覽器不要求用戶輸入網頁中“http://”的部分,因為絕大多數網頁內容是超文本傳輸協定檔案。同樣,“80”是超文本傳輸協定檔案的常用連線埠號,因此一般也不必寫明。一般來說用戶只要鍵入統一資源定位符的一部分就可以了。
由於超文本傳輸協定允許伺服器將瀏覽器重定向到另一個網頁地址,因此許多伺服器允許用戶省略網頁地址中的部分,比如www。從技術上來說這樣省略後的網頁地址實際上是一個不同的網頁地址,瀏覽器本身無法決定這個新地址是否通,伺服器必須完成重定向的任務。
轉發功能
所謂URL轉發,是通過伺服器的特殊設定,將訪問當前域名的用戶引導到您指定的另一個網路地址。
例如,URL轉發可以讓用戶在訪問http://www.abc.com時,自動轉向訪問到一個自己指定的網址http://www.123.com,URL轉發功能是萬網提供的域名註冊後的增值服務。
語法方案
統一資源定位符 (Uniform Resource Locator, URL)URI 方案集,包含如何訪問 Internet 上的資源的明確指令。
URL 是統一的,因為它們採用相同的基本語法,無論定址哪種特定類型的資源(網頁、新聞組)或描述通過哪種機制獲取該資源。
對於Intranet 伺服器或全球資訊網伺服器上的目標檔案,可以使用“統一資源定位符 (URL)”地址(該地址以“http://”開始)。Web 伺服器使用“超文本傳輸協定 (HTTP)”,一種“幕後的”Internet 信息傳輸協定。例如,http://www.microsoft.com/ 為 Microsoft 網站的全球資訊網 URL 地址。
URL的一般格式為:scheme://host:port/path?query#fragment
scheme,通信協定方案,下表列出Scheme屬性的有效方案名稱。
file 資源是本地計算機上的檔案。
ftp 通過FTP訪問資源。
gopher 通過Gopher協定訪問該資源。
http 通過HTTP訪問該資源。
https 通過安全的HTTP訪問該資源。
mailto 資源為電子郵件地址,通過SMTP訪問。
news 通過NNTP訪問該資源。
host 主機,指定的伺服器的域名系統 (DNS) 主機名或 IP 地址。
port 連線埠號,整數,可選,省略時使用方案的默認連線埠,如http的默認連線埠為80。
path 路徑,由零或多個“/”符號隔開的字元串,一般用來表示主機上的一個目錄或檔案地址。
query 查詢,可選,用於給動態網頁(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技術製作的網頁)傳遞參數,可有多個參數,用“&”符號隔開,每個參數的名和值用“=”符號隔開。
fragment 信息片斷,字元串,用於指定網路資源中的片斷。例如一個網頁中有多個名詞解釋,可使用fragment直接定位到某一名詞解釋。
注意:Windows 主機不區分 URL 大小寫,但是,Unix/Linux 主機區分大小寫。
偽造地址
為了增強Url友好性,方便搜尋引擎的收錄,現在很多用戶都希望將較長的Url帶參數程式地址變成較短的程式或靜態網頁Url地址,例如:
將show.aspx?id=3&page=4變為show-3-4.aspx,或show-3-4.html。顯然,後面的Url更短更友好。
(一)Discuz!NT默認支持的aspx偽Url地址
Discuz!NT支持一個對用戶很有用的優點:默認已經支持偽Url地址,例如:
對於 showforum.aspx?forumid=3&page=4可以直接訪問showforum-3-4.aspx,兩者返回的內容是完全相同的。
Discuz!NT能做到這一點,是因為它利用ASP.net的功能接管了對aspx檔案的http請求,虛擬主機用戶也能同樣使用這一特性,從而讓自己的論壇Url路徑更為友好。
(二)Discuz!NT使用html偽靜態地址
ASP.net默認是不接管html檔案請求的,如果用戶希望使用html的偽靜態網頁地址,則需要有IIS管理許可權,將html也交給ASP.net接管,或者利用 IIS篩選器來進行重定向,建議選擇後者,因為這樣做的效率更高。具體步驟如下:1、下載UrlRe Writer篩選器Discuz!NT特別配置包
2)修改IIS設定,添加UrlReWriter篩選器
在IIS中選擇您的站點,右擊選擇屬性,添加剛才您解壓縮出來的IisUrlRewriter.dll到篩選器中,如圖:
3、根據需要修改IisUrlRewriter.ini檔案,如果希望自己剛才的操作生效,請點系統列上的“開始”——“運行”——運行“iisreset”命令使IIS重新啟動,來使篩選器生效。
經過上面的設定,對showforum-3-4.html的請求實際上最終變成對showforum.aspx?forumid=3&page=4的請求
4、以上步驟設定完畢後,登入論壇,進入後台管理來到“全局=>常規選項=>基本設定”,設定“偽靜態URL的擴展名”為.html(注意有英文符號句點)。