For Web optimization we want to keep one URL to each page, to stay away from a few URLs that go to a similar page and coming about into partitioned reports.
so we utilize the URL rework rules to divert non-www to www by adding the beneath rule to the web.config document
<rule name="NonWwwToWww" stopprocessing="true"> <match url="(.*)"></match> <conditions> <add input="{HTTP_HOST}" pattern="^mydomain.com$"></add> </conditions> <action type="Redirect" url="http://www.mydomain.com/{R:0}" redirecttype="Permanent"></action> </rule>
also, utilize the beneath to divert from http to https
<rule name="RedirectToHTTPS" stopprocessing="true"> <match url="(.*)"></match> <conditions> <add input="{HTTPS}" pattern="off" ignorecase="true"></add> </conditions> <action type="Redirect" url="https://{SERVER_NAME}/{R:1}" redirecttype="Permanent"> </action>
</rule>
however, this will result to 2 redirections assuming clients demand URL : "http://mydomain.com" design. so to keep away from that we can blend the both in one rule by the underneath:
<rule name="WWW and SSL" enabled="true" stopprocessing="true"> <match url="(.*)"></match> <conditions logicalgrouping="MatchAny"> <add input="{HTTP_HOST}" pattern="^[^www]"></add> <add input="{HTTPS}" pattern="off"></add> </conditions> <action type="Redirect" url="https://www.mydomain.com/{R:1}" appendquerystring="true" redirecttype="Permanent"> </action>
</rule>