asp 僞靜態

在做國富科技 網站時,無意中看到僞靜態,於是查了一下,僞靜態從大的方面分爲兩種,一種是用IIS的ISAPI_Rewrite實現asp的靜態化,另一種方法就是新建一個文件夾,然後再其下建成一個index.asp文件。
首先來說 ISAPI_Rewrite

下載ISAPI_Rewrite解壓到任意文件夾安裝,給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

如果想把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] 

注意:以前在Window 2000 IIS5.0一直使用ISAPI_Rewrite進行動態鏈接重寫HTML靜態網址,

最近升級到 Widnows 2003 IIS6.0 後,發現ISAPI_Rewrite根本運行不起來,在IIS 6.0裏面一直提示“未加載”,後來查了又查,原來是文件的權限問題。

IIS 6.0 ISAPI_Rewrite 是在Service帳號下運行的,將數據文件的讀寫權限給予Service 帳號後,ISAPI_Rewrite 終於可以正常運行了。

方法二:

首先建立一個目錄,建立一個index.asp文件,就是系統默認的那個文件

然後把以前如果是 show.asp?id=26 的時候,show這個文件首先需要得到id一般用
id=request.QueryString("id")
之類的獲得id.這裏把獲得id換成,獲得?後面的數字,用以下代碼.
id = LCase(Trim(Request.ServerVariables("QUERY_STRING")))

其他的鏈接數據庫方式不變

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "Select * From blog where id="&id, conn,3,3

兩種方法比較:ISAPI_Rewrite 這種方法比較能從全局控制,比較好,但由於服務器的限制,如果服務器上沒有裝ISAPI_Rewrite,如果要自己裝的話,須自己的服務器或者虛擬服務 器,能獨立操控服務器,還得能改規則表達式,成本比較高。第二種方法,更爲靈活,但是必須立相應的文件夾,沒有成本的存在。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章