I have this rule, to redirect all HTTP traffic to HTTPS:
<rewrite>
<rules>
<rule name="RedirectToHttps" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" negate="false" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
</rule>
</rules>
</rewrite>
I found it on the Internet.
It works fine for simple URLs without query strings. But it duplicates query strings. For example http://example.com/path?key=value
becomes https://example.com/path?key=value&key=value
.
This causes problems in debugging and troubleshooting. What causes this behavior?