IIS Mod-Rewrite documentation
Overview Documentation    Quick overview    Rewrite directives    Support directives    Extended directives    Control center       Main configuration       Override configs       Engine settings       Enabled websites       Regex tester       SDBM converter       Diagnostics       Updates       Activation    Apache compatibility Download Purchase FAQ  
IIS Mod-Rewrite - URL rewrite tool for IIS

IIS Mod-Rewrite Control Center

 Engine settings

Control Panel header
Control Panel - Engine settings page

In this section you can fine tune the behavior of IIS Mod-Rewrite core engine. All settings in this section are applied globally for all websites.

ISAPI filter priority

IIS allows an ISAPI Filter to run under three predefined levels of priority. You can choose the desired priority level for IIS Mod-Rewrite (High, Medium, or Low) from the drop-down list "ISAPI filter priority". The right choise of priority level depends on the rest of ISAPI filters that may be installed on your server and the order in which they have to be called. You should usually choose "High" priority.

Override filename - (Only on IIS Mod-Rewrite Pro)

In IIS Mod-Rewrite Pro you can override a per-directory configuration by placing an configuration textfile in the target directory. This textfile must have a specific filename. The usual name is ".htaccess", but you can changed it to whatever you like (for instance "Override.txt") by typing the filename in the textbox "Override filename".

Default value for AllowOverride directive - (Only on IIS Mod-Rewrite Pro)

In IIS Mod-Rewrite Pro, for security reasons, it is highly recommended that you set the default value for AllowOverride directive to "None".

By choosing "None" in the drop-down list "AllowOverride default", a per-directory configuration cannot be overridden, unless you explicitly use a "AllowOverride All" or "AllowOverride FileInfo" directive in that per-directory configuration.

By choosing "All" in the drop-down list "AllowOverride default", a per-directory configuration can be overridden, unless you explicitly use a "AllowOverride None" directive in that per-directory configuration.

Virtual directory walk - (Only on IIS Mod-Rewrite Pro)

When IIS Mod-Rewrite Pro looks for a per-directory or override (.htaccess) configuration, it walks down the filesystem directory structure starting from the target directory towards the root, until it finds a valid rewrite configuration. Although this behavior is both performance efficient and compatible with Apache mod_rewrite, in fact it is not consistent with IIS Virtual Directory logic, and configuration search and inheritance may be broken in some circumstances. To enable flawless directory walking through a virtual directory structure you must check the checkbox "Enable virtual directory walk". However, enabling this option has a significant performance penalty that depends on the entire configuration (average 5%).

Originally requested URL

Some web applications require to know the originally requested URL. The only way to pass this information to web applications on IIS, is by adding a custom HTTP header. The default name of this custom HTTP header is "X-Original-URL".

If you want IIS Mod-Rewrite to pass the original URL to web applications, check the checkbox "Add original URL HTTP header". You can also specify a different name for this HTTP header by unchecking the checkbox "Use default header name" and entering your own custom header name in the textbox next to this checkbox.

The original URL contained in this custom HTTP header can be retrieved in most of web applications by quering the server variable "HTTP_X_ORIGINAL_URL".

Proxy settings

There are three available proxy settings.

  • Connection timeout: Sets the amount of time, in seconds, that IIS Mod-Rewrite will wait to connect to the proxy server.

  • Response timeout: Sets the amount of time, in seconds, that IIS Mod-Rewrite will wait to receive data from the proxy server, after successful connection.

  • Keep original "Host" header: HTTP 1.1 allows multiple virtual hosts under the same IP address. The "Host" header is used to distinguish which virtual server is called by the client. When proxying a request, it gets a bit more compilcated. If the client calls server "a.com", and then the request is proxied to server "b.com", by default, IIS Mod-Rewrite proxy mechanism will replace the "Host" header from "a.com" to "b.com". If it is necessary to send the proxy server the original "Host" header ("a.com"), check this ckeckbox.

Map settings

There are two available map settings that affect the behavior of RewriteMap.

  • Watch textfile changes: This setting affects the behavior of RewriteMap txt: and rnd: functions. If left unchecked, IIS Mod-Rewrite loads and parses the map (key/value lookup table) from the designated textfile only once. If checked, IIS Mod-Rewrite will reload and parse the map everytime it detects a change in the designated textfile.
    Warning: -If you choose check this option, you must consider a performance slowdown.

  • Restart external program if exited: This setting affects the behavior of RewriteMap prg: function in case the external program is unstable. When this option is checked, in case the external program has been terminated for any reason (graceful exit, crash etc) IIS Mod-Rewrite will try to re-launch it. When this option is left unchecked, IIS Mod-Rewrite will not try to re-launch the terminated external program until IIS is restarted. In such case, when a rule calls a terminated external map program, IIS Mod-Rewrite will cause IIS return a 500 HTTP status and will log the error in GlobalError.log file.

  • Use custom map script engine: This setting affects the behavior of RewriteMap prg: function. If unchecked, IIS Mod-Rewrite uses the default Windows Scripting engine for executing program maps. If you check this option, you can specify in the field below the full command line of the scripting engine executable that will run the script files for prg: function. In the command line you MUST include the placeholder "%filename" that during execution will be replaced by the script program you have designated using RewriteMap directive. For example, if you have Perl installed on your system and you want to run Mymap.pl script for prg:, you must enter the command line "C:\Perl\bin\Perl.exe %filename".

Download and try
IIS Mod-Rewrite

IIS rewrite

Download IIS Mod-Rewrite

Purchase IIS Mod-Rewrite