我的 web.config 文件中有以下规则。如您所见,它需要所有子域并重定向到“www”。
我还有一个 HTTP 模块,可以在 OnPreRequestHandlerExecute 事件上在 HTTP 和 HTTPS 之间切换。根据我的阅读和理解,这发生在重写之后,但我可能是错的。
此代码实际上在 Firefox 中工作,转移到 www. 然后在必要时使用 HTTPS,但它在 Chrome 或 IE 中都不起作用,维护 HTTP 方案。
我想对下面的代码进行一些更改,以便继续使用该方案,而不是仅仅假设目前的 HTTP。
<rewrite xdt:Transform="Insert">
<rules>
<rule name="Redirect to www">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>