Go Live release of URL Rewrite Module for IIS 7.0 LockedRSS

0 replies

Last post Sep 11, 2008 01:24 PM by ruslany

  • Go Live release of URL Rewrite Module for IIS 7.0

    Sep 11, 2008 01:24 PM|ruslany|LINK

    Today we are releasing the URL Rewrite Module for IIS 7.0 Go Live. This release contains significant functionality and performance improvements and it is believed to have a quality level suitable for production deployments.

    Install the URL Rewrite Module for IIS 7.0 Go Live today!

    Microsoft URL Rewrite Module for IIS 7.0 Go Live (x86)

    Microsoft URL Rewrite Module for IIS 7.0 Go Live (x64)

    New Features

    Here are the features that are new since CTP release (for a complete list of features refer to this article):

    • 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.

    • Lower case conversion. A lower case conversion function called "tolower" can be used within rewrite rule to convert any rule input string or substitution URL to lower case.

    • Rule templates. Rule template is an extension for URL rewrite module user interface, that simplifies creation of rewrite rules for a particular task.  The Go Live 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.

    Complete list of changes:

    Breaking changes

    The following changes may cause configuration errors in your web applications, when upgrading from Technical Preview to GoLive release of URL rewrite module:

    1. Referencing server variables within rewrite rules by using %{SERVER_VARIABLE} syntax is not supported. If your rules use this syntax then you need to change them to use this syntax instead: {SERVER_VARIABLE}.
    2. The default redirection type has been changed from Found (302) to Permanent (301). To preserve the old redirect behavior reconfigure the rules to explicitly set the redirection type to Found (302).
    3. <globalRules> section does not allow usage of "IsDirectory" and "IsFile" match types in rewrite conditions. If it is necessary to use those match types, then move the rules declaration from <globalRules> section to <rules> section.
    4. The maximum number of allowed rule and condition back-references has been limited to 10 (e.g. from {R:0} till {R:9}).

    Other changes

    The following additions, changes and important bug fixes have been made to URL rewrite module since Technical Preview release:

    1. Added kernel mode and user mode output caching support. Now, it is possible to safely cache responses for rewritten URL's.
    2. Added rule templates for "User Friendly URL", "RewriteMap" and "Incoming Request Blocking"
    3. Added "Test pattern" UI for quick testing of rule and condition patterns.
    4. Added functionality to validate the rule configuration and back-references consistency in URL rewrite UI
    5. Added "tolower" function for lower case conversion within rewrite rules.
    6. Added "defaultValue" attribute for rewrite maps. When rewrite map key lookup fails, the specified default value will be returned.
    7. Added new UI for managing rewrite maps in IIS Manager. Rewrite maps, as well as mapping entries within rewrite maps can be added, edited and removed by using URL rewrite module UI in IIS Manager.
    8. Removed un-ordered list view from URL rewrite UI in IIS Manager. Now rewrite rules are always displayed in the same order they will be executed.
    9. Added support for defining distributed rewrite rules inside of the <location> tag in applicationHost.config or web.config files.
    10. Fixed a bug in pattern evaluation logic, where back-reference to optional capture group resulted in runtime error if input string did not contain optional part.
    11. Fixed a bug in substitution URL evaluation, where it was not possible to rewrite URL relative to the root folder of the web site. Now, substitution URL can start with "/", which indicates that the specified absolute URL path will be used for rewritten URL.
    12. Included an update for IIS FastCGI module into the installer package.

    Known Issues

    1. Digest authentication cannot be used with URL rewrite module.
    2. The "~" symbol for link paths in ASP.NET server-side controls may resolve the relative paths to resources incorrectly if using URL rewrite module. This may affect any server side controls that allow usage of "~", including Hyperlink, Image, Sitemap, etc. The issue is caused by the fact that "~" gets resolved to the application path relative to the rewritten URL, while the web browser uses URL paths relative to the originally requested URL. Because of that images and resources referenced by server side controls may not display correctly in web browsers. One way to workaround this issue is to add a PreInit event handler to the web pages, where you can force the web page to resolve the "~" symbol relative to the originally requested URL:

      protected void Page_PreInit(object sender, EventArgs e)
      {
          if (Request.ServerVariables["HTTP_X_ORIGINAL_URL"] != null)
              Context.RewritePath(Request.ServerVariables["HTTP_X_ORIGINAL_URL"]);
      }
    3. In-place upgrade from CTP to Go Live causes URL Rewrite Module UI to not work. To fix this issue, re-run the URL Rewrite Module Go Live installer in repair mode.
    4. Excessive memory usage by application pool's worker process due to aggressive caching of rewrite rules. You can disable caching of rewrite rules by running the following command from an elevated command prompt:

      reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v RewriteCacheEnabled /t REG_DWORD /d 0
      Note that setting of this registry key affects the performance of URL Rewrite Module, so you should set it only if memory usage is a limiting factor for your web server.

    More information

    New and updated walkthroughs: http://learn.iis.net/page.aspx/460/using-url-rewrite-module/

    Updated configuration reference: http://learn.iis.net/page.aspx/465/url-rewrite-module-configuration-reference/

    Acknowledgements

    The URL rewriter feature team thanks all of you who installed and tried the CTP release of the URL rewrite module and provided us with valuable feedback and feature suggestions. Many of the features that we have added since CTP release as well as bug fixes are the direct result of the the feedback received from this forum's participants.