天天看點

ASP的URL重寫技術(IIS的ISAPI)

這兩天搗鼓個程式,想做成靜态頁面生成的,于是上網找了些資料,搜到了URL重寫技術,例如可以将送出的位址http://www.xxx.com/info_122.htm映射到真正的位址 http://www.xxx.com/info.asp?id=122上去,這樣有利于提高GOOGLE等搜尋引擎的收錄率。

  這東西以前學PHP的時候好象是碰見過,可是沒想到ASP也有這插件,看來ASP和PHP沒啥好差別的,PHP想要帶URL重寫技術不也得安裝的時候帶上?~~

  好了,說正題,想要IIS支援URL重寫,得先裝個ISAPI 點選http://haloua.zb139.net/attachments/month_0511/l20051124164812.rar下載下傳此檔案或下面的附件

下載下傳後解壓到任意檔案夾,給IIS使用者讀取權限,在IIS右鍵點選一個站點,屬性,ISAPI篩選器,添加,篩選器名稱一定得叫 re,可執行檔案就點浏覽找到你解壓的目錄Rewrite.dll加上即可。

  重新開機IIS後應該就能支援URL重寫規則了。

  需要修改解壓目錄中的httpd.ini這個檔案

RewriteRule /info_(/d+)/.htm /info/.asp/?id=$1 [N,I]

這句話就可以把送出的位址http://www.xxx.com/info_122.htm映射到真正的位址 http://www.xxx.com/info.asp?id=122

如果你在處理資料翻頁,那麼寫法是:

More_<%=Page%>_<%=type%>.html (注:page是翻頁頁數,type是資料類型)

表現形式:More_1_95.html

如果翻下一頁,則為:More_2_95.html,繼續下一頁的循環,則是:

More_3_95.html,以此類推。

不過你需要在httpd.ini檔案中增加以下代碼:

RewriteRule /More_(/d+)_(/d+)/.html /jsp/more/.jsp/?page=$1&type=$2 [N,I]

如果你的動态程式有多個參數需要傳遞,那麼就增加多個(/d+)即可,如下:

RewriteRule /More_(/d+)_(/d+)_(/d+)/.html /jsp/more/.jsp/?page=$1&type=$2&type2=$3 [N,I]

翻頁處理表現形式是:More_1_95.html

這個BLOG就是我剛剛安裝了URL重寫篩選器,修改了一些原代碼,弄成現在這個半靜态的樣子,實際上還是動态的。

如果想把http://www.xxx.com/info.asp?id=50#abc 轉換成靜态的網頁

因為#abc是程式處理了ID=50這個變量生成靜态頁面之後按錨點又做了一次頁内連結,是以應該這麼做映射

http://www.xxx.com/info.asp?id=50#abc轉換成http://www.xxx.com/info_50.htm#abc,重寫規則如下:

RewriteRule /info_(/d+)/.htm#(/d+) /info/.asp/?id=$1#$2 [N,I]

下載下傳ISAPI