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 请求、定义出站规则等等,大家可以查看官方给出的实例进行使用。

官方文档:https://docs.microsoft.com/en-us/iis/extensions/url-rewrite-module/url-rewrite-module-video-walkthrough

posted @ 2012-05-15 16:55  Charles Zhang  阅读(635)  评论(0编辑  收藏  举报