前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径

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

作者头像
Porschev
发布2018-01-16 11:45:49
1.1K0
发布2018-01-16 11:45:49
举报
文章被收录于专栏:Porschev[钟慰]的专栏

示例环境:VS2010

要求:

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

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

第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll)

下载链接一

  下载链接二 

第二步: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文件夹了解不多可以看看这篇文章,相信很有帮助

http://blog.csdn.net/icecityman/article/details/4748018

          1.选择项目--->右键添加--->添加asp.net文件夹--->App_Browsers

          2.在App_Browsers下创建Form.browser文件

代码语言:javascript
复制
            <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节点下添加

代码语言:javascript
复制
             <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节点下添加

代码语言:javascript
复制
             <httpModules>
                    <add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
             </httpModules>

 解释一下httpModules的的Add节点属性:

  type:HttpModule的标识号和类库名称

  name:取一个较为友好的名称

用MSDN的截图来解释一下

第五步:测式

                  1.在项目Default.aspx.cs文件Load事件中加入           

代码语言:javascript
复制
            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,详情请看博客地址

源码下载地址一

源码下载地址二

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-11-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 示例环境:VS2010
    • 要求:
      • 第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll)
        • 第二步:VS2010创建测试网站应用程序,并添加以上DLL的引用
          • 第三步:在项目中添加asp.net文件(App_Browsers)
            • 第四步:配置web.config
              • 第五步:测式
                • 第六步:在IIS7.5里配置
                  •           完成前五步后,直接运行VS可以重写成功,但发布在IIS中时就会有相应的错误,这样需要配置一下IIS,详情请看博客地址
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档