UrlRewrite有什么用處?
1、滿足搜索引擎的要求
某些搜索引擎不能支持動態頁面的抓取,大量的信息就不能被潛在用戶搜索到。用UrlRewrite技術你可以把 http://server/news.asp?id=111 變成 http://server/news/111.htm 這樣他們就會被搜索引擎收錄了。google雖然可以抓取動態頁面,但是google對動態頁面的評分一般低于靜態頁面。所以,對大量信息發布的網站,把網站地址改變成靜態的絕對是值得的。
2、隱藏技術實現,提高網站的移植性
每個頁面都掛著鮮明的.asp/.jsp這種開發語言的標記,可以一眼讓人看出你的網站使用什么語言做的。而且在改變網站的語言的時候,你需要改動大量的鏈接。而且,一個頁面修改了擴展名,他的pagerank也會隨之消失,從頭開始。我們可以用UrlRewrite技術隱藏我們的實現細節,這樣修改移植都很方便,而且完全不損失pagerank。
3、滿足美感的要求
對于追求完美主義的網站設計師,即使是網頁的地址也要看起來簡潔明快。形如 http://server/news.asp?channel=3&id=111 的網頁地址,肯定是上不了完美主義者的法眼的,用UrlRewrite技術,你可以把他變成 http://server/news/3/111.htm 。
IIS 5.0支持UrlRewrite么?
答案很簡單,不支持。但是我們可以通過安裝服務器擴展讓IIS支持。
目前有兩種產品支持IIS 5.0的UrlRewrite,isapi_rewrite 和 IIS Rewrite。
isapi_rewrite: http://www.helicontech.com/download/#isapi_rewrite
IIS Rewrite :http://www.qwerksoft.com/products/iisrewrite/download.asp
這里只有ISAPI Rewrite的一個LITE版本是免費的,其它都是trial版本。ISAPI Rewrite Lite的版本功能。
我們采用isapi_rewrite Lite Version(免費版本)。
引用:
This is simplified edition of ISAPI_Rewrite. It does not support per-virtual-site configurations, proxiing, metabase monitoring and automatic cache cleanup but all other features are supported.
所以,lite版本不支持虛擬站點配置,元數據監測和自動緩存清理。
metabase元數據:metabase 元數據庫 指一個駐留內存的數據存儲區域,其中存放著IIS的配置值。/Metabase是儲存成System32\Inetsrv
資料夾中的Metabase.bin文件
如何進行UrlRewrite的設置?
isapi_rewrite利用正則表達式進行替換規則的表示。
下面是一個簡單的例子,我想讓我們的用戶輸入 http://server/test-12314.html 實際上訪問的是 http://server/test.asp?id=12314 。那么我們的匹配表達式應該是 /test-([0-9]*).html 對應的格式化表達式應該為 /test.asp\?id=$1 。
進行正則表達式的編寫的時候,可以利用isapi_rewrite提供的正則表達式測試工具(默認安裝提供),進行調試。如下圖:
做好了匹配表達式和格式化表達式,我們可以按照下面的格式,把它們放到安裝目錄下的httpd.ini里面。
格式:RewriteRule 匹配表達式 格式化表達式
剛才的例子:RewriteRule /test-([0-9]*).html /test.asp\?id=$1
文件保存后,不需重新啟動iis即可生效。
參考資料:
面向Google(Search Engine Friendly)的URL設計
http://www.chedong.com/tech/google_url.html
ISAPI REWRITE文檔
http://www.isapirewrite.com/docs/
操作實例:
1.下載ISAPI_Rewrite.ISAPI_Rewrite分精簡(Lite)和完全(Full)版.精簡版不支持對每個虛擬主機站點進行重寫,只能進行全局處理.不過對于有服務器的朋友,精簡版也就夠啦.精簡版下載地址:http://www.helicontech.com/download/,就是那Lite Version (free)啦.
2.安裝.msi的文件,和裝一般程序一樣裝就可以了,俺就裝在D:\ISAPI_Rewrite.
3.接下來一步比較重要哦,看仔細嘍.打開Internet 信息服務,右鍵,web站點屬性,電ISAPI篩選器選項卡.添加篩選器,名稱自己填,路徑自己指定ISAPI_Rewrite.dll,然后確定.
.來測試一下.新建一個1ting.asp,里面寫上
CODE: [Copy to clipboard]
<%=request.querystring("inso")%>
,
效果就是執行的時候1ting.asp?inso=*瀏覽器顯示*.
5.這一步很重要哦,開始添加rewrite規則.正則,好頭痛,幸虧這個例子比較簡單.
找到ISAPI_Rewrite目錄,把httpd.ini的只讀屬性去掉,打開編輯.我們要把1ting.asp?inso=im286映射成為1ting-im286.html這樣的類型,需要在httpd.ini里加上這么一行:
CODE: [Copy to clipboard]
RewriteRule /1ting-([0-9,a-z]*).html /1ting.asp\?inso=$1
,保存.
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
