web developer tips (31):利用IIS 7.0的URL Rewrite 模块产生用户友好的URL

原文地址:How to have user friendly URL using IIS 7.0 URL Rewrite module

很友好的URL地址,使访问的人很容易记住。要求你的用户记住“ http://www.contoso.com/article.aspx?id=342&title=URL-Rewrite-Walkthrough” 这样的网址并不是件很美妙的事。如果给用户提供如下URL地址:http://www.contoso.com/article/342/URL-Rewrite-Walkthrough,就能更好引起共鸣和更容易被记住。

通过IIS URL Rewrite 模块( URL Rewrite module)你可以很方便建立这一逻辑而不需要修改正在使用的Rewrite Maps代码.我将告诉你从管理器里来实现。打开IIS管理器,选择“Default Web Site”,在“功能视图”单击“URL Rewrite”,然后在“操作”栏,单击“Add Rules...”,在“select a rule templates”对话框选择“Blank rule”,将打开“edit rule”属性页,按如下步骤定义实际的重写规则(rewrite rule):

http://www.watch-life.net/visual-studio/have-user-friendly-url-using-iis-7-0-url-rewrite-module.html

1、规则名称。
2、匹配URL字符串所使用的模式。
3、设置条件选项。
4、模式匹配和所有条件检查成功后执行的操作。

为了实现下面的例子,“edit rule”属性页如下图所示:

规则的名称应该是唯一(不重复)的,匹配字符串“^article/([0-9]+)/([_0-9a-z-]+)”是正则表达式,将匹配满足一下标准的任何URL字符串:

1、开始于“article/”字符序列。
2、在“/”后包含一个或多个数字字符。
3、在第二个“/”后包含一个或多个字母或“_”或“-”。

因为我们创建一个支持重写URL的规则,因此规则类型是“Rewrite“。重写字符串(Rewrite UR)“article.aspx?id={R:1}&title={R:2}”指定一个新值用于输入被重写的URL。参数我们使用“ {R:1} ”和“{R:2}”,他们将返回一组通过规则匹配定义的引用(reference)。关于返回引用( back reference)你可以参考:URL Rewrite Module Configuration Reference,有关创建重写规则的更多内容见:Creating rewrite rules for the URL Rewrite Module

一个很重要的就是URL Rewrite模块是需要被安装才可以工作,你可以如下两个版本:

x86版本:http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1691

x64版本:http://www.iis.net/downloads/default.aspx?tabid=34&g=6&i=1692

该模块(目前)只支持IIS7.0,你应该运行IIS7.0有利于使用它。如果你的项目是使用Visual Studio for Web Developers开发,那么项目应该配置成在iis7.0下运行,而不是其他的web服务器。

有关URL Rewrite模块的详细内容见:http://learn.iis.net/page.aspx/460/using-url-rewrite-module/



微信扫描下方的二维码阅读本文

那年今日

2017-07-29 WordPress版微信小程序2.1.8版发布 (54 个评论)

发表回复

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