網(LieHuo.Net)教程 首先跟大家介紹下什么是URL重寫:URL重寫是截取傳入WEB請求并自動將請求重定向到其它URL的過程。比如瀏覽器發送請求“Item/1.aspx”,服務器自動將請求定向為“Item.aspx?id=1”。
那它有什么優點:
可以縮短URL,隱藏實際記錄經提高安全性;
易于用戶記憶和鍵入;
易于被搜索引擎收錄。
在SiteFactory2.5中新增加的這個URL重寫的功能,可能大家在使用的時候并沒有發現此功能,這個功能在后臺操作界面中沒有直接的體現出來,而是寫在的程序里的。那么我們要怎么使用這個功能呢?接下來一步一步跟大家講述下。
首先來看默認情況下訪問一個內容頁的RUL:
圖1
我們看圖1的URL結尾部分是:Item/60.aspx,這個URL實際訪問的地址就是Item.aspx?id=60。下面兩個是改過之后的RUL:
圖2
圖3
圖2和圖3所顯示的URL都能和圖1的URL訪問的實際地址是一樣的,全都是Item.aspx?id=60,都很好的隱藏了實際地址。
這里到底改變了什么,讓URL改成這樣呢?打開安裝SiteFactory的根目錄下的Config/UrlRewriteSettings.config文件,用工具打開它,我們可以看到如下內容:
圖4
UrlRewriteSettings.config文件中有很多個<add>節點。里面已經提供了所有SiteFactory各個不同URL配置的類型了。比如:<add>節點中name屬性為RewriteItemd節點,它是用于信息內容頁的URL配置。具體每個<add>節點對應的配置如下:
Name屬性名 | 配置的類型 |
RewriteItemd | 信息內容頁的URL配置 |
RewriteItemPage | 信息內容頁分頁的URL配置 |
RewritePrint | 打印頁的URL配置 |
RewritePrintPage | 打印頁分頁的URL配置 |
RewriteCategory | 節點頁的URL配置 |
RewriteIndexCategory | 首頁的URL配置 |
RewriteCategoryPage | 節點分頁的URL配置 |
RewriteSpecial | 專題頁的URL配置 |
RewriteSpecialPage | 專題頁分頁的URL配置 |
RewriteSpecialCategory | 專題類別的URL配置 |
RewriteSpecialCategoryPage | 專題類別分頁的URL配置 |
RewriteSpecialCategoryIndex | 專題類別首頁的URL配置 |
RewriteSpecialCategoryIndexPage | 專題類別首頁分頁的URL配置 |
表1
我們再回到圖4中,圖中有兩個紅色框。
第一個框中內容為:
virtualUrl="^~/Item/(d+).aspx" 這個就是在瀏覽器中輸入的URL。
第二個框中內容為:
destinati 就是實際訪問的地址。
圖2所呈現的URL只要修改virtualUrl屬性值就可以了(注意整個文件只要修改<add>節點里的virtualUrl屬性值就可以了,其它的請不要做任何修改),修改virtualUrl屬性值也是有講究的,注意不要改動Item 前面的“^~/”,還有“(d+)”,“^~/”可以獲得應用程序的根目錄, “(d+)” 可以獲得訪問實際地址的ID參數值,也就是信息ID。
圖2所示的URL就是把virtualUrl屬性值修改成:virtualUrl=" ^~/Content/(d+).aspx"。圖3所示的URL:virtualUrl=" ^~/Content/(d+).Html"。
注意:改成圖3所示的URL,還的配置下IIS,因為后綴名修改了,IIS對這個URL是不會交由ASP.NET的aspnet_isapi.dll處理的,所以程序部署到IIS的時候可能會出現404錯誤,但是你可以為你的站點添加一個通配符,添加擴展名的映射:
可執行文件:C:WINDOWSMicrosoft.NETFrameworkv2.0.50727aspnet_isapi.dll
請求路徑:*
名稱:隨意