Today IIS team has made the URL Rewrite Module for IIS 7.0 Release To Web (RTW) available for download. This is a final, production-ready release that is officially supported by Microsoft.
Install the URL Rewrite Module for IIS 7.0 RTW today!
- Microsoft URL Rewrite Module for IIS 7.0 RTW (x86)
- Microsoft URL Rewrite Module for IIS 7.0 RTW (x64)
Upgrade from Go Live release
If you already have Go Live release of URL Rewrite module installed then the installation package will upgrade it to RTW release. All rewrite rules in applicationHost.config and web.config files will be preserved. Note that system reboot may be necessary when upgrading from Go Live to RTW release.
The installer for URL Rewrite module includes an update for ASP.NET runtime. The update has fixes for bugs specific to URL rewriting. The update is applied only if the machine where URL Rewrite module is being installed has .NET Framework version 3.5 SP1 or higher. If required version of .NET Framework is installed after URL Rewrite module has been installed, then the ASP.NET update can be applied by re-running URL Rewrite module installer in repair mode.
Here is the complete list of features supported by URL Rewrite module:
- Rules-based URL rewriting engine. Rewrite rules are used to express the logic of what to compare/match the request URL with and what to do if comparison was successful. Web server and site administrators can use rewrite rule sets to define URL rewriting logic.
- Regular expression pattern matching. Rewrite rules can use ECMA-262 compatible regular expression syntax for pattern matching.
- Wildcard pattern matching. Rewrite rules can use Wildcard syntax for pattern matching
- Global and distributed rewrite rules. Global rules are used to define server-wide URL rewriting logic. These rules are defined within applicationHost.config file and they cannot be overridden or disabled on any lower configuration levels. Distributed rules are used to define URL rewriting logic specific to a particular configuration scope. This type of rules can be defined on any configuration level by using web.config files.
- Access to server variables and http headers. Server variables and HTTP headers provide additional information about current HTTP request. This information can be used to make rewriting decisions or to compose the output URL.
- Various rule actions. Instead of rewriting a URL, a rule may perform other actions, such as issue an HTTP redirect, abort the request, or send a custom status code to HTTP client.
- Support for IIS kernel mode and user mode output caching. IIS 7.0 output caching provides significant performance improvements for web applications. URL rewrite module is fully compatible with both types of output caching. This means that it is possible to safely cache responses for rewritten URL’s and thus boost the performance of web applications that rely on URL rewriting.
- Rewrite maps. Rewrite map is an arbitrary collection of name-value pairs that can be used within rewrite rules to generate the substitution URL during rewriting. Rewrite maps are particularly useful when you have a large set of rewrite rules, all of which use static strings (i.e. there is no pattern matching used). In those cases, instead of defining a large set of simple rewrite rules, you can put all the mappings between input URL and substitution URL as keys and values into the rewrite map, and then have one rewrite rule which references this rewrite map to look up substitution URL based on the input URL.
- Failed Request Tracing support. IIS7.0 Failed Request Tracing can be used to troubleshoot errors related to URL rewriting.
- Extensible Rule templates. Rule template is an extension for URL rewrite module user interface, that simplifies creation of rewrite rules for a particular task. The GoLive release of the module includes 3 built-in rule templates, plus it allows plugging in any number of custom templates.
- UI for testing of regular expression and wildcard patterns. A GUI tool for testing rule patterns is included into the module’s user interface. The tool can be used to quickly check how the regular expression or wildcard pattern works. Also, it can be used for troubleshooting and debugging of problems related to pattern matching.
- UI for managing rewrite rules and rewrite maps. Rewrite rules and rewrite maps can be added, removed and edited by using “URL Rewrite Module” feature in IIS Manager.
- GUI tool for importing of mod_rewrite rules. URL rewrite module includes a GUI tool for converting rewrite rules from mod_rewrite format into an IIS format.
- String manipulation functions. Built-in string manipulation functions can be used to convert URLs to lowercase and to perform URL encoding and decoding.
The following resources related to Microsoft URL Rewrite Module are available on IIS.net:
- Creating rewrite rules
- Using Failed Request Tracing to trace rewrite rules
- Using global and distributed rules
- Using rewrite maps
- Importing rewrite rules
- Enabling “Pretty Permalinks” in WordPress
- Rule templates
- Testing rule and condition patterns
- Using URL rewrite module – video walkthrough
References and guidance:
- URL Rewrite Module configuration reference
- URL Rewriting and ASP.NET routing
- URL Rewriting and Request Filtering
- URL Rewriting for ASP.NET Web Forms
- Developing rule templates for URL Rewrite module
Also, be sure to visit the URL Rewrite Forum on IIS.NET if you have run into any problems when using the module or have questions or suggestions.
URL Rewrite team thanks all of you who have installed and tried early releases of URL Rewrite module and provided us with feedback, bug reports and feature suggestions through the URL Rewrite Forum. Your involvement throughout the release process has been very valuable to us and really helped us make this a great release!
4 thoughts on “URL Rewrite Module – Release to Web”
I really like the rewrite module, but wish that the error messages were more informative. The message “The data in the page is invalid. Correct the data and try again.” is perfectly correct, but absolutely useless. Is there anyway to get more informative messages? Is there someone I can talk to about enhancing the error reporting?