防止子域重定向到 HTTPS
Prevent subdomain from redirecting to HTTPS
当应用生产转换时,我的 web.config
中有以下重写规则。
<system.webServer>
<rewrite xdt:Transform="Insert">
<rules>
<rule name="Redirect-HTTP-TO-HTTPS" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
当我将带有暂存转换的单独网站部署到同一个 IIS 实例时,此规则不会添加到我的 web.config
。然而,到 staging.example.com
的流量仍受规则约束。
好像生产规则还在抓它?
生产 url:example.com
分期 url:staging.example.com
我如何让这个规则不那么贪婪,这样它就不会重定向暂存流量。
您可以在规则中添加其他条件以忽略 staging.example.com:
<rule name="Redirect-HTTP-TO-HTTPS" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" pattern="^staging\.example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" appendQueryString="true" />
</rule>
请记住,浏览器通常会缓存 301 重定向。应用此规则后,请清除浏览器的缓存或使用隐身模式
当应用生产转换时,我的 web.config
中有以下重写规则。
<system.webServer>
<rewrite xdt:Transform="Insert">
<rules>
<rule name="Redirect-HTTP-TO-HTTPS" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
当我将带有暂存转换的单独网站部署到同一个 IIS 实例时,此规则不会添加到我的 web.config
。然而,到 staging.example.com
的流量仍受规则约束。
好像生产规则还在抓它?
生产 url:example.com
分期 url:staging.example.com
我如何让这个规则不那么贪婪,这样它就不会重定向暂存流量。
您可以在规则中添加其他条件以忽略 staging.example.com:
<rule name="Redirect-HTTP-TO-HTTPS" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="off" />
<add input="{HTTP_HOST}" pattern="^staging\.example\.com$" negate="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" appendQueryString="true" />
</rule>
请记住,浏览器通常会缓存 301 重定向。应用此规则后,请清除浏览器的缓存或使用隐身模式