ASP.NET 使用 IIS URL Rewrite 模块实现伪静态
在做网站的时候为了让网页地址友好一点经常需要使用到 URL 重写,比如 https://www.baidu.com/a?b=1&c=2 这样的地址就不是很友好,也不方便记忆,如果是 https://www.baidu.com/a/1/2 这样的地址就比较好记了,那么在 IIS 下如何实现这种功能呢?IIS 默认是没有安装 URL 重写工具的,所以必须要自己下载安装。
URL Rewrite 模块的优点就是不需要在项目中做任何操作就可以实现重写,这样我们就不需要对原有的项目代码进行调整了。
ASP.NET 网站实现伪静态需要以下条件:
1、IIS 7.0(目前 Url Rewrite Module 仅支持 IIS 7 以上的版本);
2、Url Rewrite Module
官方地址:URL Rewrite 下载
1、安装 Url Rewrite Module
从官网选择对应的版本下载好后安装到服务器上。
官方有中文版的安装包所以我下载了简体中文的安装包。
安装完成后,在 IIS 的管理界面会多出来 URL 重写模块。
2、配置 URL Rewrite
进入 URL 重写模块后点击『添加规则』。
新建一个入站的空白规则,输入如下内容。
URL Rewrite 模块也提供了测试功能,点击『测试模式』即可重写规则的测试正则表达式是否正确。
配置好以后会在 web.config 文件的 system.webServer 节点下多出如下内容:
<rewrite> <rules> <rule name="Rewrite to article.aspx"> <match url="^article/([0-9]+)/([_0-9a-z-]+)" /> <action type="Rewrite" url="article.aspx?id={R:1}&title={R:2}" /> </rule> </rules> </rewrite>
3、测试重写规则
要测试规则是否正确重写 URL,打开 Web 浏览器并请求以下 URL:
http://localhost/article/234/hello
如果请求成功了证明重写生效了。
4、其他功能
URL Rewrite 模块还提供了很多高级的功能,比如忽略某些 URL 请求、定义出站规则等等,大家可以查看官方给出的实例进行使用。