Features |
Supported |
Comments |
Perl Compatible Regular Expressions |
Yes |
|
Server Variable expansion %{VAR_NAME} |
Yes |
|
RewriteMap expansion ${map_name:key|default} |
Yes |
|
RewriteRule backreferences $N |
Yes |
|
RewriteCond backreferences %N |
Yes |
|
Per-Server configuration |
Yes |
|
Per-Virtual Site configuration |
Yes |
|
Per-Directory configuration |
Yes |
Supported only by IIS Mod-Rewrite Pro |
Override (.htaccess) configuration |
Yes |
Supported only by IIS Mod-Rewrite Pro |
Rewrite directives |
Supported |
Comments |
RewriteEngine |
Yes |
|
"!" negation |
Yes |
|
[NC] No case text comparison flag |
Yes |
|
[OR] Or next condition flag |
Yes |
|
"<" less than text comparison |
Yes |
|
">" greater than text comparison |
Yes |
|
"=" equal to text comparison |
Yes |
|
"-f" Is regular file |
Yes |
|
"-d" Is directory |
Yes |
|
"-s" Is regular file with size |
Yes |
|
"-x" Is file with executable permissions |
Yes |
|
"-l" Is symbolic link |
Yes |
|
"-F" File exists, via subrequest |
No |
Look-aheads are not available on IIS |
"-U" URL exists, via subrequest |
No |
Look-aheads are not available on IIS |
RewriteRule |
Yes |
|
[NC] No case text comparison flag |
Yes |
|
[R=code] Force redirection flag |
Yes |
|
[G] Force URL as Gone |
Yes |
|
[F] Force URL as Forbidden |
Yes |
|
[N] Run ruleset from the beginning |
Yes |
|
[S=num] Skip next num rules |
Yes |
|
[C] Current rule is chained with next rule |
Yes |
|
[L] This rule is the last |
Yes |
|
[CO=name:value:domain:expire:path] Set cookie |
Yes |
|
[QSA] Append querystring |
Yes |
|
[NE] Do not escape URL |
Yes |
|
[PT] Pass through to next handler |
Yes |
|
[P] Force proxy |
Yes |
|
[NS] Do not allow internal subrequests |
Yes |
ISAPI does not support subrequests. Therefore [NS] always allows execution of rule |
[E=var:val] Set environment variable |
Yes |
Used for locally setting variables for later retrieval using %{ENV:XXX}. IIS does not provide any API for setting environment variables for CGIs |
[T=mimetype] Force MIME-type |
Yes |
|
[H] Force content handler |
Yes |
Available only on IIS 7 |
RewriteMap |
Yes |
|
int: Internal functions toupper, tolower, escape, unescape |
Yes |
|
txt: simple text mapping |
Yes |
|
rnd: random text mapping |
Yes |
|
dbm: hash database mapping |
Yes |
|
prg: program mapping |
Yes |
|
RewriteBase |
Yes |
Supported only by IIS Mod-Rewrite Pro |
RewriteLog |
Yes |
|
RewriteLogLevel |
Yes |
|
RewriteOptions |
Yes |
|
RewriteLock |
Yes |
|
Support directives |
Supported |
Comments |
AccessFilename |
Yes |
Supported only by IIS Mod-Rewrite Pro |
AllowOverride |
Yes |
Supported only by IIS Mod-Rewrite Pro |
ErrorLog |
Yes |
|
DocumentRoot |
Yes |
|
ProxyPassReverse |
Yes |
|
ProxyPassReverseCookieDomain |
Yes |
|
ProxyPassReverseCookiePath |
Yes |
|
ServerAdmin |
Yes |
|
Server variables |
Supported |
Comments |
HTTP_XXXXX (HTTP headers) |
Yes |
|
REMOTE_ADDR |
Yes |
|
REMOTE_HOST |
Yes |
|
REMOTE_PORT |
Yes |
|
REMOTE_USER |
Yes |
|
REMOTE_IDENT |
Yes |
|
REQUEST_METHOD |
Yes |
|
SCRIPT_FILENAME |
Yes |
|
PATH_INFO |
Yes |
Warning: PATH_INFO on IIS may significantly differ from PATH_INFO on Apache |
QUERY_STRING |
Yes |
|
AUTH_TYPE |
Yes |
|
SERVER_NAME |
Yes |
|
SERVER_ADDR |
Yes |
|
SERVER_PORT |
Yes |
|
SERVER_PROTOCOL |
Yes |
|
SERVER_SOFTWARE |
Yes |
|
API_VERSION |
Yes |
Returns the emulated Apache API version |
THE_REQUEST |
Yes |
|
REQUEST_URI |
Yes |
|
REQUEST_FILENAME |
Yes |
|
HTTPS |
Yes |
|
TIME_YEAR |
Yes |
|
TIME_MON |
Yes |
|
TIME_DAY |
Yes |
|
TIME_HOUR |
Yes |
|
TIME_MIN |
Yes |
|
TIME_SEC |
Yes |
|
TIME_WDAY |
Yes |
|
TIME |
Yes |
|
DOCUMENT_ROOT |
Yes |
|
SERVER_ADMIN |
Yes |
|
IS_SUBREQ |
Yes |
ISAPI does not support subrequests. Therefore IS_SUBREQ always returns "false" |
Additionally, IIS Mod-Rewrite supports all IIS specific server variables |
|
|