<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-7  評論-24  文章-102  trackbacks-0

    原文地址:
    技巧/訣竅:在ASP.NET中重寫URL http://blog.joycode.com/scottgu/archive/2007/03/01/94004.aspx

    方法一:使用Request.PathInfo 參數(shù)而不是查詢字符串
    方法二:使用HttpModule實現(xiàn)URL重寫
    方法三:在IIS7中使用HttpModule 實現(xiàn)無擴展名的URL重寫
    方法四:在IIS5和IIS6中使用 ISAPIRewrite 來實現(xiàn)無擴展名的URL重寫 
    在URL重寫里處理ASP.NET PostBack
    正確地處理CSS和圖像引用


    例程的URL重寫場景
    http://www.store.com/products.aspx?category=books
    http://www.store.com/products.aspx?category=DVDs
    http://www.store.com/products.aspx?category=CDs


    方法一:使用Request.PathInfo 參數(shù)而不是查詢字符串


    http://www.store.com/products.aspx/Books
    http://www.store.com/products.aspx/DVDs
    http://www.store.com/products.aspx/CDs
     

    方法二:使用HttpModule實現(xiàn)URL重寫


    http://www.store.com/products/Books.aspx
    http://www.store.com/products/DVDs.aspx
    http://www.store.com/products/CDs.aspx
     

    方法三:在IIS7中使用HttpModule 實現(xiàn)無擴展名的URL重寫


    http://www.store.com/products/Books
    http://www.store.com/products/DVDs
    http://www.store.com/products/CDs       

          IIS 7.0使得處理這類情形容易之極。你現(xiàn)在可以在 IIS 請求管道的任何地方執(zhí)行一個HttpModule,這意味著你可以使用上面的URLRewriter 模塊來處理和重寫無擴展名的URL(甚至是帶有 .asp,.php,或 .jsp 擴展名的URL)。下面示范了你在IIS7中該如何配置:
    <?xml version="1.0" encoding="UTF-8"?>

    <configuration>

      
    <configSections>
        
    <section name="rewriter" 
                 requirePermission
    ="false" 
                 type
    ="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
      
    </configSections>
      
      
    <system.web>      
        
    <httpModules>
          
    <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
        
    </httpModules>    
      
    </system.web>

      
    <system.webServer>
        
    <modules runAllManagedModulesForAllRequests="true">
          
    <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule" />
        
    </modules>
        
    <validation validateIntegratedModeConfiguration="false" />
      
    </system.webServer>

      
    <rewriter>
        
    <rewrite url="~/products/(.+)" to="~/products.aspx?category=$1" />
      
    </rewriter>
      
    </configuration> 



    方法四:在IIS5和IIS6中使用 ISAPIRewrite 來實現(xiàn)無擴展名的URL重寫





    在URL重寫里處理ASP.NET PostBack


          當使用URL重寫時,會出現(xiàn)這樣的問題,<form> 控件顯示的URL不是原先請求的URL(譬如,/products/books),而是重寫過后的URL(譬如,/products.aspx?category=books)。這意味著,當你做一個postback到服務(wù)器時,URL不再是你原先干凈利落的那個了。       在ASP.NET 2.0中,有個比較干凈的訣竅你可以用來重寫<form>控件的action屬性。具體地來說,你可利用新的ASP.NET 2.0控件適配器擴展架構(gòu)來定制控件的輸出,用你提供的值來覆蓋action屬性的值。這不要求在你的.aspx頁面里做任何編碼改動,而只要在你的/app_browsers文件夾里添加一個.browser文件,注冊使用一個控件適配類即可輸出新的action屬性。


     
    正確地處理CSS和圖像引用

          不少人在第一次使用URL重寫時,有時會遇上一個疑難雜癥,就是他們發(fā)現(xiàn)他們的圖像和CSS樣式表引用有時會停止工作。這是因為他們在HTML網(wǎng)頁里有對這些文件的相對引用,當你開始在應用里重寫URL時,你需要意識到瀏覽器經(jīng)常會在不同的邏輯層次結(jié)構(gòu)層上(logical hierarchy levels)請求文件,而不是實際存儲在服務(wù)器上的東西。

          譬如,如果我們上面的/products.aspx網(wǎng)頁對.aspx 網(wǎng)頁里的logo.jpg有一個相對引用,但是通過 /products/books.aspx這個URL來請求的,那么瀏覽器在顯示網(wǎng)頁時,將會發(fā)出一個對/products/logo.jpg的請求,而不是對/logo.jpg的請求。要正確地引用這個文件,確認你用根目錄限定了(root qualify)CSS和圖像引用(“/style.css”,而不是 “style.css”)。對于ASP.NET控件,你也可以使用“~”句法從你應用的根目錄來引用文件(譬如,<asp:image imageurl="~/images/logo.jpg" runat="server"/>) 。

      附:/Files/kiant/2010.05/UrlRewrite_HttpModule1.FormRewriter.cs.zip  附加CS版的文件
    posted on 2010-05-11 10:52 黃小二 閱讀(360) 評論(0)  編輯  收藏 所屬分類: ASP.NET
    主站蜘蛛池模板: 国产日产亚洲系列最新| 国产一级淫片a视频免费观看| 亚洲一区二区女搞男| 成人午夜性A级毛片免费| 日本免费一区尤物| 亚洲乱码无码永久不卡在线| 久久丫精品国产亚洲av| 国产一区二区三区免费| 日韩精品免费电影| 亚洲丰满熟女一区二区哦| 在线a毛片免费视频观看| 国产亚洲精品无码成人| 成人影片一区免费观看 | 91在线免费视频| 亚洲精品无码成人片久久| 国内精品久久久久影院免费| 亚洲AV日韩AV天堂久久| 8x网站免费入口在线观看| 亚洲AV中文无码乱人伦| 精品国产污污免费网站入口在线| 亚洲中文字幕无码一区二区三区 | 亚洲国产成人AV在线播放| 国产无遮挡吃胸膜奶免费看视频| 免费一级做a爰片久久毛片潮| 2020久久精品国产免费| 亚洲成色www久久网站夜月| 国产成人亚洲精品91专区高清| 亚洲av午夜精品一区二区三区| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 国产亚洲高清不卡在线观看| 97青青草原国产免费观看| 亚洲一级在线观看| 亚洲国产精品人人做人人爽| 国产精品区免费视频| 一本色道久久88亚洲精品综合| 91频在线观看免费大全| 野花视频在线官网免费1| 深夜国产福利99亚洲视频| 免费av一区二区三区| 亚洲欧美日本韩国| 亚洲精品白浆高清久久久久久|