簡介
理論上說,每個有效的 URL 都指向一個唯一的資源。這個資源可以是一個 HTML 頁面,一個 CSS 文檔,一幅圖像,等等。而在實際中,也有一些例外,最常見的情況就是一個 URL 指向了不存在的或是被移動過的資源。由于通過 URL 呈現的資源和 URL 本身由 Web 服務器處理,因此 web 服務器的擁有者需要認真地維護資源以及與它關聯的URL。
概述
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(注意有英文符号句點)。