Input Variables

When URL Rewrite processes an incoming request, a lot of information is available in the form of input variables, made up of request headers and server variables. They include information such as the domain name, URL, and client's IP address. This information is used for the rule conditions to determine which requests your rule applies to, and it can also be used in the rule action paths.

Some examples of the more common input variables include:

  • {HTTP_HOST}
  • {SERVER_ADDR}
  • {REMOTE_ADDR}
  • {URL}
  • {QUERY_STRING}
  • {HTTPS}
  • {REQUEST_URI}

A useful trick is to create a simple page that generates all the server variables with their values. Simply create a page within your website called servervariables.aspx (or whatever you want to call it) and place the following in it:

<%
For Each serverVar As String in Request.ServerVariables
  Response.Write(serverVar & " " & Request(serverVar) & "<br />")
Next
%>

If you prefer C#, you can use the following instead:

<% @ Page Language="C#" %>
<%
foreach (string serverVar in Request.ServerVariables)
{
  Response.Write(serverVar + " " + Request[serverVar] + "<br>");
}
%>

Now when you call the page in your web browser, it will display a list of most of the server variables and their values. One important distinction between this script and URL Rewrite is that URL Rewrite runs before the default document, whereas this script runs after it. Therefore, if you call a default document implicitly, these variables may not match. Some other variables, ...

Get Professional Microsoft IIS 8 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.