.NET4.0下web应用程序用UrlRewriter.dll重写无后缀路径
示例环境:VS2010
要求:
重写前:http://localhost:13275/Default.aspx?username=wilson
重写后:http://localhost:13275/wilson
第一步:下载相关DLL(ActionlessForm.dll和UrlRewriter.dll)
第二步:VS2010创建测试网站应用程序,并添加以上DLL的引用
第三步:在项目中添加asp.net文件(App_Browsers)
<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
<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>
<httpModules>
<add type="URLRewriter.RewriterModule, URLRewriter" name="RewriterModule"/>
</httpModules>
第五步:测式
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:wilson
第六步:在IIS7.5里配置
完成前五步后,直接运行VS可以重写成功,但发布在IIS中时就会有相应的错误,这样需要配置一下IIS,详情请看下面博客地址
http://www.cnblogs.com/zhongweiv/archive/2011/10/29/UrlRewriter_IIS.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。