.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径
示例环境: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:WindowsMicrosoft.NET Frameworkv2.0.50727CONFIGBrowsers中有一个可全局访问的.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文件
<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,详情请看博客地址
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Ajax爬取今日头条街拍美图
- 现在的房租有多高(杭州)?
- 英雄联盟皮肤大拼图
- Python爬虫-MongoDB
- Python爬虫-selenium
- 用Python识别图形验证码,实现自动登陆!
- 当Docker遇到Intellij IDEA,再次解放了生产力~
- 用Python爬取自主品牌汽车,看看国产汽车究竟长什么样?(上)
- 工具包 | 使用Python绘制Sci学术期刊配图
- 深入剖析AQS和CAS,看了都说好
- 用Python爬取自主品牌汽车,看看国产汽车究竟长什么样?(下)
- 读者问:小林怎么学操作系统和计算机网络呀?
- 用Python搭建一个简单的代理池
- 用Python模拟登陆GitHub并获取信息
- APUE学习手札 编写一个与3.12节中dup2功能相同的函数,要求不调用fcntl函数,并且要有正确的出错处理