Welcome 微信登录

首页 / 网页编程 / ASP.NET / 使用Microsoft Url Rewrite Module进行URL重写及Postback后保持URL的解决方案

使用Microsoft Url Rewrite Module进行URL重写及Postback后保持URL的解决方案2011-07-30 博客园 yinzixinMicrosoft URL Rewrite Module 是微软推出的asp.net url重写模块,仅支持IIS7,要在IIS6上进行 url重写,可以采用一些第三方的模块,比如 urlrewriting.net。首先去下载Rewrite Module并安装。安 装完毕后,在IIS管理工具中就会出现Url Rewrite图标。

双击你需要进行URL重写的网站或者虚拟目录的URL Rewrite按钮,可以进行规则的编辑。微软的重写 模块非常强大,有很多功能,还可以自己写程序对其进行扩展。本文仅介绍最常用和实用的利用正则表达 式进行重写。重写的基本原理是当服务器接收到一个请求的时候,利用正则表达式匹配当前输入的url, 然后根据一个规则将这个url转换为实际的url。例如,我们要把 localhost/Game/game.aspx? ID=SomeName转换为 localhost/SomeName/,也就是每个游戏名都作为一个独立的目录。于是,我们要匹配 输入的url的格式是 ([^/?]*)/$,这个正则表达式不包括根目录,例如localhost/,它的含义是所有非/和 ?的字符,并且以/结尾,按照我们的要求,它的实际地址是~/Game/game.aspx,参数是正则表达式中第一 个圆括号匹配到的内容。实际的url中会用到这个正则表达式的反向引用。反向引用的格式是 {R:n},其 中n是一个整数。n等于0的时候是整个正则表达式,n大于0的时候是从左往右数第n个捕获组的值。在这里 个例子中,我们的实际url就是 Game/Game.aspx?ID={R:1}。对于正则表达式的反向引用不太熟悉的人, 微软也提供了一个很方便的功能,Test Pattern