私の Windows 2012 サーバーでは、IIS に URL Rewrite モジュールをインストールしました。このガイドに従って、web.config で非 www を www にリダイレクトしました: http://www.surfingsuccess.com/asp/iis-url-rewrite.html#.VF6GBid0yAU
ここまでは順調ですね!
唯一の問題は、サブドメイン「api.example.com」もホストしていることです。web.config でコードを適用すると、この API が機能しなくなります。
私の質問は次のとおりです。以下のコードの何が問題になっていますか? 「api.example.com」以外の非 www を www にリダイレクトしようとすると、サブドメインが機能しなくなるのはなぜですか?
<rewrite>
<rules>
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" />
<add input="{HTTP_HOST}" pattern="^api\.example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:1}" />
</rule>
</rules>
</rewrite>