码迷,mamicode.com
首页 > Web开发 > 详细

.net Url重写

时间:2014-09-30 18:09:09      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:blog   http   io   os   使用   ar   for   文件   sp   

详细说明及下载dll源码路径:

http://msdn.microsoft.com/zh-cn/library/ms972974.aspx

 顺带上本人写的一个小例子:http://files.cnblogs.com/xuxu-dragon/Url%E9%87%8D%E5%86%99UrlRewrite.rar

一、

项目中引用ActionlessForm.dll和URLRewriter.dll。

二、

打开web.config,在configSecions中添加节点:

  <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter"/>

三、

添加规则

  
 <RewriterConfig>
  <Rules>
   <!-- Rules for Blog Content Displayer -->
   <RewriterRule>
    <LookFor>~/VmHotel/(\w+)\.aspx</LookFor>
    <SendTo>~/Hotel/$1.aspx</SendTo>
   </RewriterRule>
   <RewriterRule>
    <LookFor>~/TravelAgency/(\w+)\.aspx</LookFor>
    <SendTo>~/travel/TravelAgency/$1.aspx</SendTo>
   </RewriterRule>
   <!-- Rules for Product Lister -->
  </Rules>
 </RewriterConfig>

此处使用了正则“~/VmHotel/(\w+)\.aspx”,表示访问网站主目录VmHotel里面的所有aspx页面。"(\w+)"代表了匹配了一个或多个字母或数字或下划线或汉字。"$1.aspx"中的“$1”就是指的"(\w+)"。

四、在<httpModules>节点下添加如下节点

 <httpModules>
   <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter"/>
  </httpModules>

五、如果页面需要回传,则要添加如下改动。

在aspx网页的代码中加<%@ Register TagPrefix="RW" Namespace="ActionlessForm" Assembly="ActionlessForm" %>,然后将form标签改为RW:Form(注意开始和结束都要改),TagPrefix可以自定义。参考项目例子中的Hotel/Edit.aspx

 

ok完成

 查看最终效果:可以看到浏览器地址栏里显示的是http://localhost:2727/TravelAgency/Add.aspx?type=1,而在而Add.aspx文件在项目中的真实的结构却是travel/TravelAgency/Add.aspx。

bubuko.com,布布扣

 

网上也有现成的说明例子。

http://weijie.blog.51cto.com/340746/89603/

 

.net Url重写

标签:blog   http   io   os   使用   ar   for   文件   sp   

原文地址:http://www.cnblogs.com/xuxu-dragon/p/4002194.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!