I've always been a bit puzzled over the magic that surrounds Url Rewriting, it is actually very simple. What you need to do is
- Name the rule
- Create a pattern to use for matching the URL string that shall be rewritten
- Optional set of conditions
- Select the wanted action to perform if a pattern is matched and whether all conditions checks succeed
Name, Pattern, Conditions, Action.
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Redirect HTTP to HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Since this is a snipped post I won't get into much depth but I'd like to remark the redirectType attribute in the action element in the example since that will affect search engines and some clients a lot. In my sample this is set to "Permanent", this equals a 301 redirect. There are a few other options available
- Permanent (301)
- Found (302)
- See other (303)
- Temporary (307)
Read more at, http://www.iis.net/learn/extensions/url-rewrite-module/url-rewrite-module-configuration-reference#Redirect_action