.NET4.0下web應用程序用UrlRewriter.dll重寫無后綴路徑


示例環境:VS2010

 

 

要求:

              重寫前:http://localhost:13275/Default.aspx?username=wilson

              重寫后:http://localhost:13275/wilson

 

第一步:下載相關DLL(ActionlessForm.dll和UrlRewriter.dll)

                           下載鏈接一:    http://download.csdn.net/detail/porschev/3704868
                           下載鏈接二:    http://files.cnblogs.com/zhongweiv/Lib.rar

 

第二步:VS2010創建測試網站應用程序,並添加以上DLL的引用

                         PS:   操作步驟省略,我想都會
                                              
 

第三步:在項目中添加asp.net文件(App_Browsers)

          App_Browsers這個我們比較少用
      
          App_Browsers文件夾包含.browser文件,.browser文件是XML文件,可以標識向應用程序發出請求的瀏覽器,並理解這些瀏覽器的功能。
          在C:\Windows\Microsoft.NET\ Framework\v2.0.50727\CONFIG\Browsers中有一個可全局訪問的.browser文件列表。另外,如果要
          修改這些默認的瀏覽器定義文件,只需將Browsers文件夾中的對應.browser文件復制到應用程序的\App_Browsers文件夾,修改其定義即可。
 

 

          如果對這些Asp.Net文件夾了解不多可以看看這篇文章,相信很有幫助
            
                        
          1.選擇項目--->右鍵添加--->添加asp.net文件夾--->App_Browsers
          2.在App_Browsers下創建Form.browser文件
 
復制代碼
            <browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.HtmlControls.HtmlForm"
adapterType="URLRewriter.Form.FormRewriterControlAdapter"/>
</controlAdapters>
</browser>
</browsers>
復制代碼

           PS:  refID:不可以與ID和arentID同時存在

                

 

 

第四步:配置web.config

1 .在configuration節點下添加
復制代碼
             <configSections>
<section name="CustomConfiguration" type="URLRewriter.Config.UrlsSection, URLRewriter"/>
</configSections>

<CustomConfiguration>
<urls>
<!--([\w]+)表示,1到n個字母或數字或下划線或漢字組成-->
<add virtualUrl="~/([\w]+)*" destinationUrl="~/Default.aspx?username=$1"/>
</urls>
</CustomConfiguration>
復制代碼
 
PS:正則的部分,要根據不同的規則去寫,如果有不會的,可以留下詳細規則,我看到后會盡快回復!! 
 
 
 
  2.在System.web節點下添加
             <httpModules>
<add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
</httpModules>
 
 解釋一下httpModules的的Add節點屬性:
  type:HttpModule的標識號和類庫名稱
  name:取一個較為友好的名稱
 
用MSDN的截圖來解釋一下

      
 
 

第五步:測式

                  1.在項目Default.aspx.cs文件Load事件中加入           
 
 
復制代碼
            if (!IsPostBack)
{
StringBuilder sb = new StringBuilder();
sb.Append("當前所在位置:Default.aspx<br/>");
if (!string.IsNullOrEmpty(Request.Params["username"]))
{
sb.Append("所接收到的參數username:" + Request.Params["username"]);
}
Response.Write(sb.ToString());
}
復制代碼
                 
                這里的測試主要是測試直接用重寫后規則訪問,看是否訪問成功,並測試是否能夠接收到username參數 
                還有輸入重寫前的地址,是否能訪問成功
                   
 
               
                 測試一:找開----->http://localhost:13275/Default.aspx   
                                 結果(aspx頁輸出)------>當前所在位置:Default.aspx 
                      
               
                 測試二:找開----->http://localhost:13275/wilson
                                 結果(aspx頁輸出)------>當前所在位置:Default.aspx
                                                   所接收到的參數username:wilson
 

 

第六步:在IIS7.5里配置

          完成前五步后,直接運行VS可以重寫成功,但發布在IIS中時就會有相應的錯誤,這樣需要配置一下IIS,詳情請看下面博客地址

          http://www.cnblogs.com/zhongweiv/archive/2011/10/29/UrlRewriter_IIS.html

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM