I would like to use web.config to redirect all requests on my asp.net site to https:// with non-www. That is:
http://
http://www
https://www
should all go to
https://
So far I have this for my web.config:
<system.webServer>
...
<rewrite>
<rules>
<clear />
<rule name="Redirect to https" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" appendQueryString="false" />
</rule>
</rules>
</rewrite>
</system.webServer>
The above snippet takes care of redirecting these two:
http://
http://www
But I'm missing the last, which is:
https://www ---> https://
How to do that?
You need to add second rule:
<rule name="NonWwwRedirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.sitename\.com$" />
</conditions>
<action type="Redirect" url="http://sitename.com/{R:1}" />
</rule>
You just need to replace sitename.com
with your domain name
Here´s a generic rule that worked for me:
<rule name="Force non-WWW" enabled="true" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" />
</conditions>
<action type="Redirect" url="http://{C:2}/{R:1}" appendQueryString="true" redirectType="Permanent" />
</rule>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With