Isapi Rewrite Filter: IIS 7上免费的URL重写工具

日期: 2011-02-21 作者:Serdar Yegulalp翻译:Dan 来源:TechTarget中国 英文

大多数IIS管理员对重写URL(URL rewriting)的概念很熟悉,或者至少曾经熟悉过。重写URL是一种调整特定URL请求和对应处理程序间映射的方法。   例如,如果你请求访问一个后缀为.ASPX的文件,那么服务器上的ASP.NET处理程序就会处理这个请求。如果你请求访问的是一个静态页面,如.HTM文件或者图像文件,那么该请求会被送给这些文件对应的处理程序(通常是将被请求文件以数据流的形式送给客户端)。

诸如此类。   但是有时候你可能想以一种稍微灵活些的方式处理这些URL请求。例如,你有可能会使用一些并不指向实际文件的URL,如http://yourdomain.com/faq,然后将他……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

大多数IIS管理员对重写URL(URL rewriting)的概念很熟悉,或者至少曾经熟悉过。重写URL是一种调整特定URL请求和对应处理程序间映射的方法。

  例如,如果你请求访问一个后缀为.ASPX的文件,那么服务器上的ASP.NET处理程序就会处理这个请求。如果你请求访问的是一个静态页面,如.HTM文件或者图像文件,那么该请求会被送给这些文件对应的处理程序(通常是将被请求文件以数据流的形式送给客户端)。诸如此类。

  但是有时候你可能想以一种稍微灵活些的方式处理这些URL请求。例如,你有可能会使用一些并不指向实际文件的URL,如http://yourdomain.com/faq,然后将他们重定向到真正指向至实际文件的地址。你还可能想要将某些请求重定向到一个完全不同的服务器上,或者在特定类型的文件传输前对其进行额外处理。

  早期版本的互联网信息服务(IIS)并没有本地URL重写机制,于是许多用户为了完成这点制作了自己的IIS插件。实际上,Windows Server 2008 R2所带的IIS 7.5版仍然没有自带URL重写模块,但微软提供了一个称之为URL Rewrite的插件。

  Ionic的Isapi重写过滤器简称为IIRF,它是针对URL Rewrite和许多其它第三方URL重写工具的不足而开发。它是一个免费的开源工具,基于许可授权协议,因此部署和使用它不会产生任何费用,且其源代码还可以用到其它程序中。IIRF使用Perl兼容正则表达式库(Perl Compatible Regular Expressions)来匹配正则表达式(regex)。因此,在regex字符串种类繁多的Perl世界中(regex的使用占据至高的统治地位),IIRF也能很好地工作。IIRF能够与许多Web程序系统工作,这些系统包括Perl、PHP、ASP、ASP.NET、JSP以及微软的SharePoint。它的功能并不依赖于.NET库,所以那些不想使用或者依赖.NET库的人们可以放心使用。

  安装完成后,你可以通过两个INI文件来配置Isapi重写过滤器,一个用于配置整个系统(IirfGlobal.ini),另一个用于配置每个你想使用的虚拟目录或IIS应用程序(IIRF.ini)。这两个INI文件中可以包含重写URL的规则,其书写格式和功能非常类似于Apache的重写引擎模块所使用的RewriteRule命令。IIRF工具甚至可以直接使用RewriteRule命令,所以具有Apache背景的管理员会感到很熟悉。IIRF还支持同时启用重定向和重写功能,并能在此基础上以一个请求代理系统(request-proxying system)的方式进行工作。

  熟练掌握regex是理解URL重写工作机制的关键,所以我强烈建议(管理员们)要熟悉正则表达式的基础知识,并且在将IIRF部署到实际使用环境之前尝试在临时系统中进行试用。一旦你掌握了必备知识,回过头来看看这份关于正则表达式如何工作以及regex有哪些变体的概要。最后,我建议阅读INI配置文件的示例,以便开始一些常见的任务,如屏蔽特定用户代理(UA)的请求、将一个虚拟主机映射到某个子目录、自动迁移域名等。

作者

Serdar Yegulalp
Serdar Yegulalp

Serdar Yegulalp从1994年到2001年为Windows杂志写作,覆盖了广泛的技术方面。他现在是《The Windows 2000 Power Users Newsletter》一书的出版者,辛勤钻研他擅长的Windows NT, Windows 2000 and Windows XP领域,并为TechTarget写专栏。

相关推荐

  • 如何用IIS 7插件增强PHP的安装与配置?

    PHP是Windows Server中使用增长速度最快的语言之一。PHP堆栈的管理并不是一帆风顺的,因为这包括安装、配置,如果需要的话,甚至还需要同时运行多个实例。

  • Windows server 2008五大优点(图)

    微软的新服务器操作系统Windows server 2008出来有一段时间了,这款操作系统与以前的操作系统版本相比有着很多优点,下面我们简单介绍一下五个优点。