I have the following rule which is working well for redirecting my www requests to the root.
However I can't seem to turn it off for localhost. Here is what I have now:
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="https://example.com/{R:1}" />
</rule>
I've tried many things including things like:
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^localhost$" negate="true" />
<add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="https://example.com/{R:1}" />
</rule>
Could you help? Regexes are my weakness alas
How about using a condition to only match requests that start with
www.instead of trying to negate when you don't want the rule to apply? This avoids the need to negatelocalhostbecauselocalhostnever matches in the conditions:However, your example of the rule you tried (your second code block) also works for me in testing with IIS on a Windows 10 VM. I can browse to
localhostwithout a redirect. Perhaps there is another issue here.