Archive for the 'URLRewrite' tag

URL Rewrite Module 2.0 for IIS 7 – Beta

Today IIS team has released the URL Rewrite Module 2.0 for IIS 7 – Beta. This is an incremental release that includes all the features from version 1.1, and adds support for outbound response rewriting. More specifically, it can be used to:

  • Replace the URLs generated by a web application in the response HTML with a more user friendly and search engine friendly equivalent
  • Modify the links in the HTML markup generated by a web application behind a reverse proxy.
  • Fix up the content of any HTTP response by using regular expression pattern matching

Install the URL Rewrite Module 2.0 Beta


or, download:

URL Rewrite Module 2.0 for IIS 7 – Beta (x86)

URL Rewrite Module 2.0 for IIS 7 – Beta (x64)

Continue Reading »


ruslany on July 16th 2009 in URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)

Upgrade to WordPress 2.8 and PHP 5.3 on IIS 7

Today I have upgraded my blog to the recently released WordPress 2.8 and to PHP 5.3 RC3 (VC9 Non Thread Safe build). If you are running WordPress (or any other PHP application) on IIS 7, then there are several reasons why it may be beneficial for you to upgrade:

  • PHP 5.3 has a number of Windows-specific bug fixes and improvements that address stability and functionality problems which existed before when running PHP on Windows. For detailed list of all the changes and fixes, refer to the news.txt file included within the PHP zip file.
  • PHP 5.3 has been compiled with the latest version of C compiler (VC9), which makes it run faster on Windows than any previous versions of PHP (which were compiled with VC6).
  • WordPress 2.8 has built-in support for IIS 7 URL Rewrite Module. Refer to IIS 7 URL Rewrite Module support in WordPress 2.8 for more details.

Overall, the upgrade went pretty smoothly and the only thing that was different from the usual process of setting up PHP on Windows was the date.timezone setting in php.ini file. Starting with PHP 5.3, this setting must be explicitly set, e.g.:

date.timezone = America/Los_Angeles

After this successful upgrade I guess it is time now “to reward myself by reading that book or an article that I’ve been putting off, or simply sitting back for a few moments and let the world pass me by”.

Have you tried upgrading to PHP 5.3 on IIS recently? What was your experience?


ruslany on June 11th 2009 in PHP, URLRewrite, WordPress


PoorFairAverageGoodExcellent (No Ratings Yet)

IIS 7 URL Rewrite Module support in WordPress 2.8

I am pleased to let everyone know that WordPress development community has added a built-in support for IIS 7 URL Rewrite Module in the upcoming WordPress 2.8 release. Starting with version 2.8 the Permalink Settings page will allow you to easily configure “Pretty Permalinks” URL structure when WordPress is running on IIS 7 with URL Rewrite Module v1.1 installed.

Here is how the process of updating Permalinks structure will look like in WordPress 2.8 on IIS 7: Continue Reading »


ruslany on May 15th 2009 in PHP, URLRewrite, WordPress


PoorFairAverageGoodExcellent (No Ratings Yet)

URL Rewrite Module 1.1 for IIS 7

Today IIS team has released the URL Rewrite Module 1.1 for IIS 7. This is an incremental update that contains fixes to the bugs found since the URL Rewrite Module v1.0 has been released in November 2008. If you have version 1.0 installed (file version of rewrite.dll is 7.1.315.0), it is highly recommended you upgrade to version 1.1.

Install the URL Rewrite Module 1.1 for IIS 7 today!

Install URL Rewrite with Web PI

or, download:

Microsoft URL Rewrite Module 1.1 for IIS 7 (x86)

Microsoft URL Rewrite Module 1.1 for IIS 7 (x64)

Upgrade from URL Rewrite Module 1.0 release

If you have URL Rewrite Module version 1.0 installed, the installation package upgrades it to version 1.1. All rewrite rules in applicationHost.config and web.config files are preserved during upgrade process. Continue Reading »


ruslany on April 20th 2009 in URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)

10 URL Rewriting Tips and Tricks

This post describes some of the tips and tricks that one may find useful when solving URL-based problems for their web server or web site. Each tip/trick has a description of a problem and then an example of how it can be solved with IIS 7 URL Rewrite Module.

  1. Add or Remove Trailing Slash
  2. Enforce Lower Case URLs
  3. Canonical Hostnames
  4. Redirect to HTTPS
  5. Return HTTP 503 Status Code in Response
  6. Prevent Image Hotlinking
  7. Reverse Proxy to Another Site/Server
  8. Preserve Protocol Prefix in Reverse Proxy
  9. Rewrite/Redirect Based on Query String Parameter
  10. Avoid Rewriting of Requests for ASP.NET Web Resources

1. Add or Remove Trailing Slash

Many web applications use “virtual URLs” – that is the URLs that do not directly map to the file and directory layout on web server’s file system. An example of such application may be an ASP.NET MVC application with URL format similar to this: or a PHP application with URL format that looks like this: If you try to request these URLs with or without trailing slash you will still get the same page. That is OK for human visitors, but may be a problem for search engine crawlers as well as for web analytics services. Different URLs for the same page may cause crawlers to treat the same page as different pages, thus affecting the page ranking. They will also cause Web Analytics statistics for this page to be split up. Continue Reading »


ruslany on April 8th 2009 in URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)


ruslany on November 10th 2008 in URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)

Video walkthrough for URL Rewrite Module

Last week I have recorded a video screencast that shows how to use URL Rewrite Module for IIS 7.0 to perform some common URL manipulations tasks. Today this video has been published on IIS.NET – check it out at this location.

The video demonstrates how to create rewrite rules to perform the following tasks:

  • Enabling user friendly and search engine friendly URLs for dynamic web pages;
  • Enforcing canonical host names, so that site visitors as well as search engines always use a particular domain name for your web site;
  • Using rewrite maps to define static mappings between requested and rewritten URLs;
  • Blocking unwanted site crawlers by aborting requests based on HTTP user-agent header.

In addition, the video shows how to test, troubleshoot and debug rewrite rules by using “Test pattern” tool and IIS 7.0 Failed Request Tracing.

Please take a look and leave comments or questions if anything is not clear or you would like to get more information on a particular topic.

No Comments »

ruslany on September 19th 2008 in URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)


ruslany on September 11th 2008 in URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)

ASP.NET Routing, Request Filtering, URL Rewriting

Today I have published two new articles on The articles are intended to explain the differences between various URL manipulation technologies available in IIS 7.0 and to provide help with choosing of the technology best suited for a particular usage scenario.

Here is the short summary of the articles:

  • IIS 7.0 URL Rewriting and ASP.NET Routing -  with the release of URL-rewrite module for IIS 7.0 and the inclusion of ASP.NET routing into the .NET Framework 3.5 SP1, there have been a lot of questions from ASP.NET developers about how these two features relate to each other and when to use each. This article describes the differences between these two technologies and provides guidance for Web developers on when to use IIS URL rewriting and when to use ASP.NET routing.
  • IIS 7.0 Request Filtering and URL Rewriting – IIS 7.0 includes a request filtering module that is based on the URLScan ISAPI Filter for IIS 6.0. The module helps you tighten security of your Web servers. The URL rewrite module, even though its primary purpose is to rewrite URL paths for requests, can also be used as a security enforcement tool that helps prevent access to Web site content. The article compares security related features of these two modules and explains how to choose among them when securing your web server.

Please take a look and leave comments or questions if anything is not clear or you would like to get more information on a particular topic.

Acknowledgements: I want to thank Phil Haack from ASP.NET team and Nazim Lala from IIS team for reviewing the articles and providing great feedback. Also I thank Mike Pope for very high quality editing of the articles.

No Comments »

ruslany on September 4th 2008 in URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)

Ruby on Rails in IIS 7.0 with URL Rewriter

This article is very out of date at this point and most probably the instructions given here do not work. Please refer to more up-to-date and supported solutions for running Ruby on Rails in IIS 7 provided by Helicon Zoo Web Framework Repository.

If you ever tried to set up Ruby on Rails (RoR) on IIS 7.0 with FastCGI you have probably noticed that the process is not very straightforward. There are a few workarounds that need to be applied in order for RoR to function correctly. In particular, handling of static files in your web application can be tricky on IIS 7.0. The problem is that RoR uses clean URL’s that look similar to this: In order for RoR to be invoked for this kind of URL’s  it is necessary to create a “catch all” handler mapping in IIS (that is a handler mapping with path attribute set to “*“). When you create such a handler mapping it will cause requests for static files to be routed to RoR, which will obviously fail to handle them.

For RoR to work correctly on IIS with FastCGI it needs to behave like a 404 handler, meaning that it should be invoked only if the requested URL does not exist as a file on a physical file system. The default IIS configuration does not allow this kind of configuration, so there are several workarounds available today – this article describes them in great details. However, these workarounds are either not recommended for production usage or are not easy to configure. In this post I will explain how URL Rewrite Module for IIS 7.0 can be used to configure IIS and RoR to work correctly with static files.

Continue Reading »


ruslany on August 7th 2008 in FastCGI, URLRewrite


PoorFairAverageGoodExcellent (No Ratings Yet)

Recently Published Articles