IIS 10配置HSTS及重定向时遇HSTS预加载错误求助
修复HSTS预加载的重定向顺序问题
要解决这个错误,你需要把重定向拆分为两步独立的规则,确保HTTP请求先跳转至同域名的HTTPS,再处理非www到www的跳转:
第一步:所有HTTP请求强制跳转至HTTPS
这条规则负责将任何HTTP(端口80)的请求,直接重定向到对应域名的HTTPS版本,保证浏览器先获取顶级域名的HSTS响应头。
<rule name="HTTP to HTTPS Redirect" stopProcessing="false"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="off" ignoreCase="true" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule>
第二步:HTTPS下的非www域名跳转至www
这条规则只处理HTTPS请求,将非www的顶级域名跳转至www子域名,此时浏览器已经记录了顶级域名的HSTS条目,不会影响预加载审核。
<rule name="Non-WWW to WWW Redirect" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" pattern="^www\." negate="true" /> </conditions> <action type="Redirect" url="https://www.{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule>
关键说明
- 两条规则的
stopProcessing属性需注意:第一条设为false,确保后续规则能继续执行;第二条设为true,避免不必要的后续处理。 - 调整后请求流程变为:
http://example.com→https://example.com(获取HSTS头)→https://www.example.com,完全符合HSTS预加载的要求。 - 确保HSTS响应头在**HTTPS的顶级域名(example.com)**上返回,结合
IncludeSubDomains配置,浏览器记录的顶级域名HSTS条目会自动覆盖www子域名。
内容的提问来源于stack exchange,提问作者Jek94
相关产品推荐
相关产品推荐

