我在这里看了许多SO的帖子以及在网上(IIS博客等)阅读了一些内容。 我试图将所有从domain.com发出的连接强制重定向到www.domain.com,并同时将请求从HTTP强制重定向到HTTPS。
我正在使用这组规则和重写,但唯一发生的是它可以很好地重定向,但无法重定向到SSL。
<!-- Redirect to HTTPS -->
<rewrite>
<rules>
<rule name="Redirect to www" stopProcessing="true">
<match url="(.*)" />
<conditions trackAllCaptures="false">
<add input="{HTTP_HOST}" matchType="Pattern" pattern="^mydomain.com$" ignoreCase="true" negate="false" />
</conditions>
<action type="Redirect" url="{MapProtocol:{HTTPS}}://www.mydomain.com/{R:1}" />
</rule>
</rules>
<rewriteMaps>
<rewriteMap name="MapProtocol" defaultValue="http">
<add key="on" value="https" />
<add key="off" value="http" />
</rewriteMap>
</rewriteMaps>
</rewrite>
我做错了什么?
主要参考博客: http://weblogs.asp.net/owscott/url-rewrite-protocol-http-https-in-the-action 和这篇 SO 帖子 - web.config 重定向非 www 到 www