利用MS提供的重写URL类来实现伪静态

 一、准备工作
  1、到MS站下载URLRewriter文件,本贴提供了下载,请点击最下面的附件(URLRewriter);
  2、将URLRewriter添加到你的项目中,或者编译成Dll文件引入到项目中都可以
二、配置工作
  1、打开Web.Config文件
  2、找到节点<configSections>,再节点中添加此代码<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  结果显示为:

  1. <configSections>
  2.        ....//这里是系统自动添加的一些代码,这里不进行贴出来。下面“...”都表示系统自带的一些代码,就不再说明
  3.       <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  4. </configSections>
复制代码

3、找到节点<system.web>,再节点中添加如下代码,其结果如下:

  1. <httpModules>
  2.       <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
  3. </httpModules>
复制代码
河北康辉旅行社: http://www.96333.net.cn
魔兽世界私服: http://www.lt773.cn
新开魔兽私服: http://www.5858a.cn
搜搜搜魔兽私服: http://www.ssswow.net
千年私服: http://www.bccom.cn
传奇3私服: http://www.cj35.cn

OK,现在基本配置完成,现在就是重写的配置了。
三、URL重写配置
  在Web.Config中添加这样的节点

  1. <RewriterConfig>
  2.     <Rules>
  3.       <RewriterRule>
  4.         <LookFor>静态页地址,显示给用户的地址</LookFor>
  5.         <SendTo>真实地址,网址里的真实地址</SendTo>
  6.       </RewriterRule>
  7.     </Rules>
  8. </RewriterConfig>
复制代码

现在我们就主要以Lookfor 和 SendTo 来进行分析,应该如何写
四、具体操作
比如我们希望用这样的地址来代替我们实际的址,如:http://www.5wYw.com/my.html访问,但我们实际地址是:http://www.5wYw.com/user/info.aspx,这时我们的配置文件就可以这样操作

  1. <LookFor>http://www.5wyw.com/my.html</LookFor>
  2. <SendTo>http://www.5wyw.com/user/info.aspx</SendTo>
复制代码

这样就可以实现了伪静态了,这是最简单的一种,下面我们来说说带参数的方法。

如访问一条新闻信息,http://www.5wyw.com/news_1.html表示访问的是:http://www.5wyw.com/news.aspx?id=1这样的地址,配置文件就应该是:

  1. <LookFor>http://www.5wyw.com/news_(/d{0,9})/.html</LookFor>
  2. <SendTo>http://www.5wyw.com/news.aspx?id=$1</SendTo>
复制代码

具我的理解,其实LookFor中的第一个正则表达式就是SendTo的$1,LookFor的第二个正则表达式就是SendTo的$2,具体的正则表达式这里不正详细说明,可以找一下.Net相关的正则表达式,本站提供了一点关于正则表达式的说明:http://bbs.5wyw.com/thread-231-1-1.html
下面来具体说明一下两个参数的配置方法,看代码

  1. <LookFor>~/news/(/d{0,9})/(/d{0,9})/.html</LookFor>
  2. <SendTo>~/News.aspx?pageindex=$1&newtype=$2</SendTo>
复制代码

解释一下。上面我们访问的应该是例如:http://www.5wyw.com/news/1/2.html,实际程序访问的是:http://www.5wyw.com/news.aspx?pageindex=1&newtype=2,意思就是访问新闻第二页,类型为2的新闻列表

五、总结
  $1,$2....$n 其实就是对应的LookFor中按正则出现的先后顺序来决定对应的相关参数和值。
  若想了解这个重写类具体是如何工作的,可以参见下此贴提供的原理和思路,具体代码可以查看重写类的源代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值