熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET用URLRewriter.dll實現偽靜態

2013-11-13 09:52:43  來源: .NET編程 
    <configSections>
   
    <!用於指定配置節RewriterConfig的處理程序類的名稱為URLRewriterConfigRewriterConfigSerializerSectionHandler該類存在於bin目錄下的URLRewriter dll文件中>
   
    <section name=RewriterConfig type=URLRewriterConfigRewriterConfigSerializerSectionHandler URLRewriter />
   
    </configSections>
   
    <httpModules>
   
    <add type=URLRewriterModuleRewriter URLRewriter name=ModuleRewriter />
   
    </httpModules>
   
    <RewriterConfig>
   
    <Rules>
   
    <RewriterRule>
   
    <!表示用戶輸入的urld(\d+)\aspx是 url中文件名匹配的正則表達式(此處為字母d開頭後面跟一個或多個數字並以aspx結尾用戶也可根據自己的需要自行設定)>
   
    <LookFor>~/d(\d+)\aspx</LookFor>
   
    <!表示當服務器接收到符合上面條件的請求後如何重寫url此處表示訪問defalutlaspx並傳入參數id其值$將用用戶請求的文件名中的第一個數字來表示
   
    例如用戶輸入 hostname/daspx服務器會把他重寫為x?id=換句話說用戶輸入x實際訪問的是
   
    x?id=這樣就起到了隱藏真實文件名並便於用戶記憶的作用>
   
    <SendTo>~/defaultaspx?id=$</SendTo>
   
    </RewriterRule>
   
    <RewriterRule>
   
    <LookFor>~/news_ny_(*)html</LookFor>
   
    <SendTo>~/news_nyaspx?newsId=$</SendTo>
   
    </RewriterRule>
   
    <RewriterRule>
   
    <LookFor>~/news_(*)_(*)html</LookFor>
   
    <SendTo>~/newsaspx?newsTypeId=$&amp;newsWhere=$</SendTo>
   
    </RewriterRule>
   
    <RewriterRule>
   
    <LookFor>~/l</LookFor>
   
    <SendTo>~/newsaspx</SendTo>
   
    </RewriterRule>
   
    </Rules>
   
    </RewriterConfig>
   
    用到AspNetPager分頁控件的頁面可以將AspNetPager的 UrlPaging設為false 變相的解決分頁控件顯示aspx頁面問題也可以向訪問頁面這樣一步一步配置實現html的偽靜態


   
    對於兩個參數的規則  & 符號要寫成 &amp; 用的時候第二個參數如果用不到空著即可但是必須寫_ 如l
   
    IIS 配置偽靜態
   
    httpHandler實現Net無後綴名Web訪問
   
    )首先新建一個應用程序池名稱任意比如nettest托管管道模式先暫時設置為集成模式等下面的一系列設置完成之後再設置成經典模式
   
    )部署好站點並將此站點的應用程序池設置為nettest;
   
    )選中站點切換到功能試圖找到 服務器組件> 處理程序映射雙擊之後在打開窗口右側的操作欄目下做如下設置
   
    添加腳本映射:請求路徑l 可執行文件選擇 C:\Windows\MicrosoftNET\Framework\v\aspnet_isapidll 如果是則為C:\Windows\MicrosoftNET\Framework\v\aspnet_isapidll名稱隨意
   
    添加通配符腳本映射:請求路徑 * 可執行文件為C:\Windows\MicrosoftNET\Framework\v\aspnet_isapidll名稱隨意
   
    添加托管處理程序:請求路徑 * 可執行文件SystemWebUIPageHandlerFactory名稱隨意
   
    )打開站點切換到功能試圖找到 服務器組件>模塊雙擊之後在打開窗口右側的操作欄目中點擊添加托管模塊類型
   
    URLRewriterModuleRewriter並且把僅針對向 應用程序或托管處理程序發出請求調用 選中
   
    )最後找到我們第一步建立的應用程序池nettest將托管管道模式設置為經典模式
   
    以上完成之後即可實現IIS 下的偽靜態操作
   
    IIS  配置偽靜態
   
    IIS配置網站>屬性>目錄>配置(G)…>映射>應用程序擴展>添加
   
    可執行文件c:windowsframeworkvaspnet_isapidll
   
    擴展名l
   
    動作限制為 GETHEADPOSTDEBUG
   
    腳本引擎選中
   
    確認文件是否存在不選


From:http://tw.wingwit.com/Article/program/net/201311/11841.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.