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 节点下多出如下内容:

1
2
3
4
5
6
7
8
<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:

1
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 @   Charles Zhang  阅读(663)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示