IIS实现https非www域名重定向到https带www域名问题求助
问题原因
你遇到的https非www域名无法跳转的问题,核心有两类可能:
- 前置配置缺失:IIS站点的HTTPS绑定未添加非www域名,或是所用SSL证书未覆盖非www域名,导致请求还没触发重写规则就先报证书错误,无法完成跳转
- 重写规则配置瑕疵:现有主机名规范化规则未指定永久重定向类型,且规则顺序逻辑不合理,部分场景下会出现跳转失效
解决步骤
- 先确认前置配置:
- 检查IIS站点的HTTPS绑定,确认已经添加了非www域名(xyzdomain.com)的绑定记录
- 确认所用SSL证书是多域名证书或通配符证书,同时支持xyzdomain.com和www.xyzdomain.com
- 替换现有重写规则为以下配置:
<rewrite> <rules> <clear /> <!-- HTTP统一跳转HTTPS --> <rule name="HTTP to HTTPS" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" /> </rule> <!-- 所有非www域名统一跳转www域名 --> <rule name="CanonicalHostNameRule" enabled="true" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> <add input="{HTTP_HOST}" pattern="^www\.xyzdomain\.com$" negate="true" /> </conditions> <action type="Redirect" url="https://www.xyzdomain.com/{R:1}" appendQueryString="true" redirectType="Permanent" /> </rule> </rules> </rewrite>
注意:请将配置中的xyzdomain.com替换为你实际使用的域名。
3. 配置更新后执行iisreset命令重启IIS生效,测试前清除浏览器缓存避免旧的重定向缓存干扰结果。
内容的提问来源于stack exchange,提问作者XqTGA33
相关产品推荐
相关产品推荐

