Recently we had reason to force all page connections to use SSL for one of our clients. We have done this in the past with code, but I wanted to see if this was possible to do with the URL Rewrite module. We utilize an SSL load balancer so all the examples online did not work for us. I was able to tinker with the rule until I found one that worked. Below is the code from the web.config file that causes all non-HTTPS traffic on a site to be routed to HTTPS.

          <rule name="Force Https" stopProcessing="true">
                <add input="{HTTP_X_IS_SSL}" pattern="Yes" negate="true" />
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />

We check the X-Is-SSL header that is added by the F5 load balancer and redirect as needed. So far, so good.