中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁(yè) > 技術(shù)文檔 > 網(wǎng)絡(luò)編程 > 一個(gè)url重寫實(shí)例
學(xué)習(xí)一種新編程語(yǔ)言要做的15個(gè)練習(xí) 回到列表 [asp]數(shù)據(jù)庫(kù)被掛馬的ASP處理方法
 一個(gè)url重寫實(shí)例

作者:planRED 時(shí)間: 2009-03-27 文檔類型:原創(chuàng) 來(lái)自:藍(lán)色理想

最近有個(gè)朋友要做url重寫的東西,我?guī)退伺?回頭看當(dāng)年自己寫的那個(gè)文章,當(dāng)時(shí)以為自己寫的很容易理解.但現(xiàn)在再看卻覺(jué)得寫的不好.而今天百度了一下urlrewriter發(fā)現(xiàn)我這個(gè)文章竟然排第二.為了方便更多朋友,我再寫點(diǎn)東西補(bǔ)充下.

一般用百度搜的朋友都是對(duì)這個(gè)不了解但又急需要用的,我想,再多的語(yǔ)言也比不過(guò)一句代碼.于是我把今天幫朋友時(shí)候?qū)懙囊粋(gè)小例子傳了上來(lái).這個(gè)小例子的目的是實(shí)現(xiàn)對(duì)任意url的重寫(但不包括二級(jí)域名的,有需要二級(jí)域名的也可以先了解下url重寫的概念). 這個(gè)小項(xiàng)目的制作過(guò)程如下

  1. 需要對(duì)諸如http://song2.cn/viewnews/2009/3/2.html的url進(jìn)行重寫.將其重寫為http://song2.cn/viewnews.aspx?id=2&year=2009&month=3
  2. 下載微軟的那個(gè)URLRewriter.dll,使用這個(gè)對(duì)url進(jìn)行重寫.

我們來(lái)看這個(gè)url, http://song2.cn/viewnews/2009/3/2.html(當(dāng)然也可能是3.html,6.html,7.html).要重寫,首先是截獲url請(qǐng)求,然后分析當(dāng)時(shí)的url,最后跳轉(zhuǎn)到相應(yīng)的頁(yè)面.所以我們第一步是要截獲url請(qǐng)求.為此新建一個(gè)類庫(kù)叫URL,在該類庫(kù)中引用URLRewriter.dll.新建一個(gè)類myrewritter.cs,代碼如下

namespace URL
{
    public class myrewritter : URLRewriter.BaseModuleRewriter
    {
        protected override void Rewrite(string requestedPath, HttpApplication app)
        {
            if (requestedPath.Contains("viewnews/2009/3/2.html"))
                app.Context.RewritePath("/viewnews.aspx?id=2&year=2009&month=3");
            else
                app.Context.RewritePath("/here.aspx");
        }
    }
}

可以看到該類繼承了URLRewriter.BaseModuleRewriter,然后在Rewrite方法中加入了我們自己的邏輯.現(xiàn)在,只要當(dāng)前的url請(qǐng)求是viewnews/2009/3/2.html,我們就會(huì)將頁(yè)面重寫到/viewnews.aspx?id=2&year=2009&month=3.

這只是一個(gè)簡(jiǎn)單的例子,實(shí)際上對(duì)于url的判斷,一般是用正則表達(dá)式來(lái)完成.而頁(yè)面和頁(yè)面間的對(duì)應(yīng)關(guān)系,可能需要通過(guò)查詢數(shù)據(jù)庫(kù)完成.

接下來(lái)在網(wǎng)站項(xiàng)目中引用這個(gè)類庫(kù).然后修改下web.config,下面是我的web.config

<?xml version="1.0"?>

<configuration>
    <appSettings/>
    <connectionStrings/>
    <system.web>
        <httpModules>
            <add type="URL.myrewritter"  name="URL" />
        </httpModules>       
        <compilation debug="true" />    
        <authentication mode="Windows" />
    </system.web>
</configuration>

大家可以看到我新加了個(gè)httpModules.這個(gè)的作用是,如果有url請(qǐng)求,asp.net會(huì)先把請(qǐng)求傳到你指定的這個(gè)類中來(lái).add那一行了,前面的是要接收請(qǐng)求的類,后面的是這個(gè)類所在的dll的名字.

添加完這一句后,一切就快結(jié)束了.由于我們要處理的是.html的頁(yè)面,所以需要配置下iis.因?yàn)槟J(rèn)asp.net的處理引擎不會(huì)管.html.我們要做的是用處理asp.ent的那個(gè)程序來(lái)處理html頁(yè)面.打開(kāi)iis.找到你的網(wǎng)站,點(diǎn)右鍵打開(kāi)屬性.找到主目錄(Home Directory),打開(kāi)配置(Configuration)對(duì)話框. 在Application extensions(抱歉我不知道這個(gè)在中文系統(tǒng)里叫什么)列表里找到.aspx,點(diǎn)擊編輯(Edit...),復(fù)制Executable框的內(nèi)容.比如我的是:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll. 然后點(diǎn)擊Add,在打開(kāi)的對(duì)話框里, Executable把剛才復(fù)制的路徑粘貼到這里,extension填寫html,然后確定保存.這樣我們就把對(duì).html頁(yè)面的請(qǐng)求交給了asp.net.

全部完成了,編譯下項(xiàng)目(中文環(huán)境叫 生成),打開(kāi)url http://localhost/mytest/viewnews/2009/3/2.html,看會(huì)不會(huì)重寫到http://localhost//viewnews.aspx?id=2&year=2009&month=3

下面是我的例子的全部文件,大家可以下載然后看看.看一句代碼比看十句話都管用,對(duì)吧

要注意的是,我的例子中,web網(wǎng)站的url配置成了http://localhost:8011,你可能需要更改下這個(gè)配置.方法是在網(wǎng)站項(xiàng)目上點(diǎn)右鍵,打開(kāi)屬性.然后在Web頁(yè)面中修改.

作為一個(gè)初學(xué)者,可能對(duì)這些東西感覺(jué)挺煩的.如果你不想看長(zhǎng)篇大論,那最好的辦法就是看下我的代碼.我最近在學(xué)flex,對(duì)有些新東西也是處于忍無(wú)可忍的狀態(tài).春天到了,大家都比較煩躁,所以,靜下心來(lái),慢慢來(lái).

源碼下載:rewrittertest.rar

更高級(jí)的內(nèi)容看這里
http://www.cnblogs.com/notus/archive/2007/03/13/673222.html

經(jīng)典論壇交流
http://bbs.blueidea.com/thread-2918675-1-1.html

本文鏈接:http://www.95time.cn/tech/program/2009/6551.asp 

出處:藍(lán)色理想
責(zé)任編輯:bluehearts

◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
[asp]數(shù)據(jù)庫(kù)被掛馬的ASP處理方法
PS動(dòng)作功能制作規(guī)范化的截屏圖
價(jià)目表:實(shí)例和最佳策略
十步學(xué)會(huì)用css建站(全)
一個(gè)簡(jiǎn)潔的管理菜單
作者文章 更多作者文章
[Python]web.py的簡(jiǎn)介
在DreamHost的空間上安裝web.py
Karrigell 入門簡(jiǎn)介
使用SQL Server 2005中的CLR集成
[asp.net]擴(kuò)展Forms驗(yàn)證
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁(yè)制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開(kāi)啟
國(guó)際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國(guó)國(guó)防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問(wèn)題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語(yǔ)言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡(jiǎn)單繪制一個(gè)可愛(ài)的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡(jiǎn)單的作品展示頁(yè)面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開(kāi)發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來(lái)自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來(lái)自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說(shuō)明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無(wú)關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測(cè)試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開(kāi)發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開(kāi)發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2