.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径

 

示例环境:VS2010

 

 

要求:

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

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

 

第一步:下载相关DLLActionlessForm.dll和UrlRewriter.dll)

                           下载链接一:   http://download.csdn.net/detail/porschev/3704868
                           下载链接二:   https://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

 
 
 
 
 
posted @ 2011-11-02 10:18  porschev  阅读(8597)  评论(27编辑  收藏  举报

回到顶部