How to create a url alias using IIS URL Rewrite


Want to allow someone to shortcut their way to a particular part of a website? Jonathan Yong, one of our Premier Field Engineers from Malaysia, shows you how!


Problem: I have a url or domain that is very long! How can I create a shorter url that acts as an alias, which maps to a subfolder under the long url?

Example: Instead of going to www.verylongurl.com/folder, I want people to simply go to www.shorturl.com.

Answer: You can use the IIS URL Rewrite module to create a rule which maps one url to another.

Prerequisites: This solution only works with IIS 7 and above.

Details: In the following, I will show you step by step how to accomplish this. There’s also a sample file included (see the download link at the bottom of this page) so that you can try this in your own environment.

1.

Download and install the IIS URL Rewrite module from IIS.net.

If IIS Manager is running when you install URL Rewrite, you will need to close and reopen it in order to see the URL Rewrite configuration tool icon.

image

2.

Next, I will copy the files and folder necessary to set up my web site.

  • Extract the sample code
  • Open an elevated command prompt (Start, CMD, Ctrl+Shift+Enter, Yes)
  • Go to the extracted sample code folder in the command prompt.
  • Run 01-copy_file.bat. This will copy the sample files to c:\inetpub\verylongurl folder.

Don’t close the command prompt yet. We still need it for subsequent steps.

image

3.

I will create a web site which maps to the folder above and has two bindings, using host headers.

  • The web site name is ‘Long URL Web Site’.
  • The port number and host header binding is : 80/verylongurl.com and 80/shorturl.com

From the command line, run 02-create_site.bat to create the web site.

image

4.

On the Internet, we’d need to add both hostnames to DNS so that users can surf to the site.

In our test environment, we simply add this to the HOSTS file on any computer we’re testing from.

  • Open a notepad elevated as Administrator (Start, NOTEPAD, Ctrl+Shift+Enter)
  • Open the HOSTS file in C:\Windows\System32\drivers\etc\hosts.
  • Add the following two domain name to the hosts file and save it.

image

5.

We will now create the URL Rewrite rule which maps the short url to the long url.

  • Go back to IIS Manager.
  • Click on the ‘Long URL Web Site
  • Double click the URL Rewrite icon to open the URL Rewrite configuration.

6.

In the URL Rewrite configuration, click on the Add Rule(s) link in the Actions pane on the right hand side.

image

7.

Select the Blank rule template and click OK.

image

8.

In the Edit Inbound Rule screen,

  • Enter “URL Alias” (or any name you like) in the Name textbox,
  • Make sure Requested URL is Matches the Pattern,
  • Make sure Using is Regular Expression,
  • Enter “ .* ” in the Pattern textbox.

image

9.

Click the down arrow to expand the Conditions title, then click Add.

image

10.

In the Add Condition dialog,

  • Enter {HTTP_HOST} in the Condition input textbox;
  • Select Matches the Pattern in the Check if input string;
  • Enter shorturl.com in the Pattern textbox
  • Click OK.

image

11.

Scroll down further to the Action section.

  • In the Action type, select Rewrite.
  • Enter “ /subfolder/{R:0} ” in the Rewrite URL.
  • Tick the checkbox on Stop processing of subsequent rules.

image

12.

Click the Apply link on the top right of the Actions pane.

The configuration is saved to the web.config file in your web site folder. You may open this web.config file to review how the configuration is being created under the hood.

image

Let’s review what we just did from step 8 to 11:

  • We create a rule that matches all incoming urls (step 8), and
  • If the host in the url matches “shorturl.com” as specified in the Conditions section (step 9 and 10),
  • Rewrite the url to “ /subfolder/<incoming url> ” (step 11).

If you browse to https://shorturl.com/abc.htm, the url will rewrite to https://shorturl.com/subfolder/abc.htm.

However, if you browse to https://verylongurl.com/abc.htm, the url will not be rewritten because it does not match the host name we are looking for, which is “shorturl.com”.

To see this in action, browse to the following pair of urls and you should see that each pair will show you the same page.

Test A:

Test B:

You can learn more about URL Rewrite module here.

Download the sample file here:

 

URL_Alias_Setup.zip


Posted by Tristan “Bridesmaid” Kington, MSPFE Editor