關(guān)于Server.Transfer(URL)和UrlReWrite的一個(gè)突發(fā)奇想
更新時(shí)間:2006年06月26日 00:00:00 作者:
最近DV上有人提到Server.Transfer(Url),突然想到經(jīng)常有人問的關(guān)于UrlReWrite地址映射技術(shù),如果條件允許的話,Server.Transfer也能做一個(gè)假的地址映射
前提是主機(jī)要支持自定義404錯(cuò)誤,否則下邊的你不用看了!
假設(shè)我使用一個(gè)靜態(tài)地址來訪問我的某個(gè)頁面,如:http://blog.goalercn.com/article/100.html(其實(shí)這個(gè)地址所對(duì)應(yīng)的頁面根本就不存在,因此就會(huì)自動(dòng)顯示404.asp頁的內(nèi)容),而實(shí)際顯示的是http://blog.goalercn.com/article/article.asp?Id=100的內(nèi)容,怎么弄呢?
先配置主機(jī)的404錯(cuò)誤頁:假設(shè)為404.asp,這里要使用asp擴(kuò)展名的(為了能執(zhí)行ASP腳本)
在404.asp頁面中,先獲取當(dāng)前來源頁的URL,從URL里來取得我們需要的ID參數(shù),隨便用一下簡(jiǎn)單的正則或是用INSTR,MID之類的配合使用,都可以輕松取得這個(gè)ArticleID,這里我就不寫了
這樣我們就得到了這個(gè)文章的ID編號(hào):ArticleID,但是這里有一個(gè)問題,Server.Transfer(Url)里的這個(gè)Url是不可以帶參數(shù)的,且這個(gè)Url必須為同一服務(wù)器上的頁面,因此我們就需要用Session來傳遞一下這個(gè)ArticleID
Session("ArticleID") = ArticleID
Server.Transfer("article.asp")
article.asp頁上接收這個(gè)Session("ArticleID"),從數(shù)據(jù)庫中讀出這個(gè)Session("ArticleID")相應(yīng)的文章數(shù)據(jù)
有點(diǎn)投機(jī)取巧的意思
,大概這么說一下我想都能明白了吧,不明白的人我也不說了
!
聲明一下:我沒有測(cè)試,雖然偶的服務(wù)器支持這些東西,但偶懶得去弄,確實(shí)沒什么意思。有沒有錯(cuò)誤我也不知道,有錯(cuò)請(qǐng)指正!
補(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錯(cuò)誤,否則下邊的你不用看了!
假設(shè)我使用一個(gè)靜態(tài)地址來訪問我的某個(gè)頁面,如:http://blog.goalercn.com/article/100.html(其實(shí)這個(gè)地址所對(duì)應(yīng)的頁面根本就不存在,因此就會(huì)自動(dòng)顯示404.asp頁的內(nèi)容),而實(shí)際顯示的是http://blog.goalercn.com/article/article.asp?Id=100的內(nèi)容,怎么弄呢?
先配置主機(jī)的404錯(cuò)誤頁:假設(shè)為404.asp,這里要使用asp擴(kuò)展名的(為了能執(zhí)行ASP腳本)
在404.asp頁面中,先獲取當(dāng)前來源頁的URL,從URL里來取得我們需要的ID參數(shù),隨便用一下簡(jiǎn)單的正則或是用INSTR,MID之類的配合使用,都可以輕松取得這個(gè)ArticleID,這里我就不寫了
這樣我們就得到了這個(gè)文章的ID編號(hào):ArticleID,但是這里有一個(gè)問題,Server.Transfer(Url)里的這個(gè)Url是不可以帶參數(shù)的,且這個(gè)Url必須為同一服務(wù)器上的頁面,因此我們就需要用Session來傳遞一下這個(gè)ArticleID
Session("ArticleID") = ArticleID
Server.Transfer("article.asp")
article.asp頁上接收這個(gè)Session("ArticleID"),從數(shù)據(jù)庫中讀出這個(gè)Session("ArticleID")相應(yīng)的文章數(shù)據(jù)
有點(diǎn)投機(jī)取巧的意思
,大概這么說一下我想都能明白了吧,不明白的人我也不說了
!聲明一下:我沒有測(cè)試,雖然偶的服務(wù)器支持這些東西,但偶懶得去弄,確實(shí)沒什么意思。有沒有錯(cuò)誤我也不知道,有錯(cuò)請(qǐng)指正!
補(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)任意二級(jí)域名 高級(jí)篇
- asp.net用url重寫URLReWriter實(shí)現(xiàn)任意二級(jí)域名 新
- asp.net用url重寫URLReWriter實(shí)現(xiàn)任意二級(jí)域名
- asp.net下用url重寫URLReWriter實(shí)現(xiàn)任意二級(jí)域名的方法
- windows server 2008R2系統(tǒng) IIS7.5配置偽靜態(tài)的方法(urlrewrite)
- URLRewriter最簡(jiǎn)單入門介紹 URLRewriter相關(guān)資源
- 利用404錯(cuò)誤頁面實(shí)現(xiàn)UrlRewrite的實(shí)現(xiàn)代碼
- UrlRewrite 重寫url詳解及實(shí)例
相關(guān)文章
Linux下的網(wǎng)絡(luò)監(jiān)聽技術(shù)之二
Linux下的網(wǎng)絡(luò)監(jiān)聽技術(shù)之二...2007-09-09
多VLAN環(huán)境下DHCP服務(wù)的實(shí)現(xiàn)
多VLAN環(huán)境下DHCP服務(wù)的實(shí)現(xiàn)...2007-09-09
讓你暢游國(guó)內(nèi)網(wǎng)絡(luò)無障礙統(tǒng)一加速器
這篇文章主要介紹了讓你暢游國(guó)內(nèi)網(wǎng)絡(luò)無障礙統(tǒng)一加速器的相關(guān)資料,需要的朋友可以參考下2007-09-09


