關(guān)于Server.Transfer(URL)和UrlReWrite的一個突發(fā)奇想
更新時間:2006年06月26日 00:00:00 作者:
最近DV上有人提到Server.Transfer(Url),突然想到經(jīng)常有人問的關(guān)于UrlReWrite地址映射技術(shù),如果條件允許的話,Server.Transfer也能做一個假的地址映射
前提是主機(jī)要支持自定義404錯誤,否則下邊的你不用看了!
假設(shè)我使用一個靜態(tài)地址來訪問我的某個頁面,如:http://blog.goalercn.com/article/100.html(其實(shí)這個地址所對應(yīng)的頁面根本就不存在,因此就會自動顯示404.asp頁的內(nèi)容),而實(shí)際顯示的是http://blog.goalercn.com/article/article.asp?Id=100的內(nèi)容,怎么弄呢?
先配置主機(jī)的404錯誤頁:假設(shè)為404.asp,這里要使用asp擴(kuò)展名的(為了能執(zhí)行ASP腳本)
在404.asp頁面中,先獲取當(dāng)前來源頁的URL,從URL里來取得我們需要的ID參數(shù),隨便用一下簡單的正則或是用INSTR,MID之類的配合使用,都可以輕松取得這個ArticleID,這里我就不寫了
這樣我們就得到了這個文章的ID編號:ArticleID,但是這里有一個問題,Server.Transfer(Url)里的這個Url是不可以帶參數(shù)的,且這個Url必須為同一服務(wù)器上的頁面,因此我們就需要用Session來傳遞一下這個ArticleID
Session("ArticleID") = ArticleID
Server.Transfer("article.asp")
article.asp頁上接收這個Session("ArticleID"),從數(shù)據(jù)庫中讀出這個Session("ArticleID")相應(yīng)的文章數(shù)據(jù)
有點(diǎn)投機(jī)取巧的意思
,大概這么說一下我想都能明白了吧,不明白的人我也不說了
!
聲明一下:我沒有測試,雖然偶的服務(wù)器支持這些東西,但偶懶得去弄,確實(shí)沒什么意思。有沒有錯誤我也不知道,有錯請指正!
補(bǔ)充:還是寫一下吧
Dim PageUrl,ArticleID
PageUrl= Request.ServerVariables("URL")
Dim regExp
Set regExp = New RegExp
regExp.IgnoreCase = True
regExp.Global = True
RegExp.Pattern="/article/([\s\S]*?).html"
ArticleID=RegExp.Replace(PageUrl,"$1")
SET regExp=Nothing
前提是主機(jī)要支持自定義404錯誤,否則下邊的你不用看了!
假設(shè)我使用一個靜態(tài)地址來訪問我的某個頁面,如:http://blog.goalercn.com/article/100.html(其實(shí)這個地址所對應(yīng)的頁面根本就不存在,因此就會自動顯示404.asp頁的內(nèi)容),而實(shí)際顯示的是http://blog.goalercn.com/article/article.asp?Id=100的內(nèi)容,怎么弄呢?
先配置主機(jī)的404錯誤頁:假設(shè)為404.asp,這里要使用asp擴(kuò)展名的(為了能執(zhí)行ASP腳本)
在404.asp頁面中,先獲取當(dāng)前來源頁的URL,從URL里來取得我們需要的ID參數(shù),隨便用一下簡單的正則或是用INSTR,MID之類的配合使用,都可以輕松取得這個ArticleID,這里我就不寫了
這樣我們就得到了這個文章的ID編號:ArticleID,但是這里有一個問題,Server.Transfer(Url)里的這個Url是不可以帶參數(shù)的,且這個Url必須為同一服務(wù)器上的頁面,因此我們就需要用Session來傳遞一下這個ArticleID
Session("ArticleID") = ArticleID
Server.Transfer("article.asp")
article.asp頁上接收這個Session("ArticleID"),從數(shù)據(jù)庫中讀出這個Session("ArticleID")相應(yīng)的文章數(shù)據(jù)
有點(diǎn)投機(jī)取巧的意思


聲明一下:我沒有測試,雖然偶的服務(wù)器支持這些東西,但偶懶得去弄,確實(shí)沒什么意思。有沒有錯誤我也不知道,有錯請指正!
補(bǔ)充:還是寫一下吧
Dim PageUrl,ArticleID
PageUrl= Request.ServerVariables("URL")
Dim regExp
Set regExp = New RegExp
regExp.IgnoreCase = True
regExp.Global = True
RegExp.Pattern="/article/([\s\S]*?).html"
ArticleID=RegExp.Replace(PageUrl,"$1")
SET regExp=Nothing
您可能感興趣的文章:
- AspNetPager分頁控件UrlRewritePattern參數(shù)設(shè)置的重寫代碼
- asp.net用url重寫URLReWriter實(shí)現(xiàn)任意二級域名 高級篇
- asp.net用url重寫URLReWriter實(shí)現(xiàn)任意二級域名 新
- asp.net用url重寫URLReWriter實(shí)現(xiàn)任意二級域名
- asp.net下用url重寫URLReWriter實(shí)現(xiàn)任意二級域名的方法
- windows server 2008R2系統(tǒng) IIS7.5配置偽靜態(tài)的方法(urlrewrite)
- URLRewriter最簡單入門介紹 URLRewriter相關(guān)資源
- 利用404錯誤頁面實(shí)現(xiàn)UrlRewrite的實(shí)現(xiàn)代碼
- UrlRewrite 重寫url詳解及實(shí)例
相關(guān)文章
回歸正途,用Opteron 144打造高性價比服務(wù)器
回歸正途,用Opteron 144打造高性價比服務(wù)器...2007-09-09基于寬帶接入網(wǎng)絡(luò)遠(yuǎn)程視頻監(jiān)控系統(tǒng)
基于寬帶接入網(wǎng)絡(luò)遠(yuǎn)程視頻監(jiān)控系統(tǒng)...2007-09-09打好網(wǎng)絡(luò)傳輸?shù)幕A(chǔ)布線系統(tǒng)智能化
打好網(wǎng)絡(luò)傳輸?shù)幕A(chǔ)布線系統(tǒng)智能化...2007-09-09網(wǎng)管必學(xué)之交換機(jī)VLAN的配置
網(wǎng)管必學(xué)之交換機(jī)VLAN的配置...2007-09-09網(wǎng)吧電影視頻服務(wù)器架設(shè)完全入門教程
網(wǎng)吧電影視頻服務(wù)器架設(shè)完全入門教程...2007-09-09網(wǎng)管實(shí)戰(zhàn) 服務(wù)器為什么無法進(jìn)行自動備份
網(wǎng)管實(shí)戰(zhàn) 服務(wù)器為什么無法進(jìn)行自動備份...2007-09-09