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

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

<configSections>

<!--用於指定配置節"RewriterConfig"的處理程序類的名稱爲”URLRewriter.Config.RewriterConfigSerializerSectionHandler”,該類存在於bin目錄下的URLRewriter .dll文件中-->

    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
</configSections>

 

  <httpModules>
         <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

 </httpModules>

 

  <RewriterConfig>
    <Rules>
      <RewriterRule>

        <!--表示,用戶輸入的url,d(\d+)\.aspx是 url中文件名匹配的正則表達式(此處爲字母d開頭,後面跟一個或多個數字,並以.aspx結尾。用戶也可根據自己的需要自行設定)。-->
        <LookFor>~/d(\d+)\.aspx</LookFor>

        <!--表示當服務器接收到符合上面條件的請求後如何重寫url。此處表示訪問defalutl.aspx並傳入參數id,其值$1將用用戶請求的文件名中的第一個數字來表示。
        例如用戶輸入 hostname/d11.aspx,服務器會把他重寫爲http://hostname/default.aspx?id=11。換句話說用戶輸入http: //hostname/d11.aspx,實際訪問的是
        http://hostname/default.aspx?id=11。這樣就起到了隱藏真實文件名,並便於用戶記憶的作用。-->
        <SendTo>~/default.aspx?id=$1</SendTo>
      </RewriterRule>

 

      <RewriterRule>
        <LookFor>~/news_ny_(.*).html</LookFor>
        <SendTo>~/news_ny.aspx?newsId=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/news_(.*)_(.*).html</LookFor>
        <SendTo>~/news.aspx?newsTypeId=$1&amp;newsWhere=$2</SendTo>
      </RewriterRule>

    <RewriterRule>
        <LookFor>~/news.html</LookFor>
        <SendTo>~/news.aspx</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>

 

用到AspNetPager分頁控件的頁面可以將AspNetPager的 UrlPaging設爲false ,變相的解決分頁控件顯示.aspx頁面問題。也可以向訪問頁面這樣,一步一步配置,實現.html的僞靜態。

對於兩個參數的規則  “&” 符號要寫成 “&amp;“ 用的時候第二個參數如果用不到空着即可,但是必須寫"_" 如news_xwgg_.html

 

IIS 7.5 配置僞靜態
httpHandler實現.Net無後綴名Web訪問
     1)首先新建一個應用程序池,名稱任意,比如:nettest,託管管道模式先暫時設置爲集成模式,等下面的一系列設置完成之後再設置成經典模式;
     2)部署好站點,並將此站點的應用程序池設置爲nettest;
     3)選中站點,切換到功能試圖,找到 "服務器組件"-> "處理程序映射",雙擊之後,在打開窗口右側的操作欄目下做如下設置:
     4)"添加腳本映射":請求路徑 .html ,可執行文件選擇 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ,如果是4.0,則爲C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,名稱隨意;
     5)"添加通配符腳本映射":請求路徑 * ,可執行文件爲:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,,如果是4.0,則爲C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,名稱隨意;



     6)"添加託管處理程序":請求路徑 * ,可執行文件:System.Web.UI.PageHandlerFactory,名稱隨意;
     7)打開站點切換到功能試圖,找到 "服務器組件"->"模塊",雙擊之後,在打開窗口右側的操作欄目中,點擊"添加託管模塊",類型
URLRewriter.ModuleRewriter,並且把"僅針對向asp.net 應用程序或託管處理程序發出請求調用" 選中;
     8)最後,找到我們第一步建立的應用程序池nettest,將託管管道模式設置爲經典模式。
     以上完成之後,即可實現IIS 7.5下的僞靜態操作。
 
2003 IIS  配置僞靜態
IIS配置:網站->屬性->目錄->配置(G)...->映射->應用程序擴展->添加
可執行文件:c:"windows"microsoft.net"framework"v2.0.50727"aspnet_isapi.dll
擴展名:.html
動作:限制爲 GET,HEAD,POST,DEBUG
腳本引擎:選中
確認文件是否存在:不選

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章