You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在web.config中将URL重定向至不带www的HTTPS地址?

嘿,我懂你的困扰——你的现有规则只解决了HTTP转HTTPS的问题,但没处理www前缀的剥离,所以才会跳转到https://www.example.com。问题出在你用了{HTTP_HOST}这个变量,它会直接沿用请求里的原始主机名(比如用户访问www.example.com的话,这个变量就是www.example.com),自然带www了。

给你两种方案,都能把所有访问情况(包括http://example.com、http://www.example.com、https://www.example.com)都301永久重定向到https://example.com:

方案一:拆分两个规则(逻辑清晰)

规则顺序很重要,先放第一个,再放第二个,避免多余的重定向步骤:

规则1:剥离www前缀(覆盖HTTP/HTTPS)

这个规则会把任何带www的请求,直接跳转到不带www的HTTPS地址:

<rule name="Redirect WWW to Non-WWW HTTPS" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^www\.example\.com$" ignoreCase="true" />
  </conditions>
  <action type="Redirect" url="https://example.com/{R:0}" redirectType="Permanent" appendQueryString="false" />
</rule>

规则2:非www的HTTP转HTTPS

专门处理不带www但用HTTP访问的情况:

<rule name="Redirect HTTP to HTTPS Non-WWW" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    <add input="{HTTP_HOST}" pattern="^example\.com$" ignoreCase="true" />
  </conditions>
  <action type="Redirect" url="https://example.com/{R:0}" redirectType="Permanent" appendQueryString="false" />
</rule>

方案二:合并成单个规则(更简洁)

如果想少写点代码,可以把两种情况合并成一个规则,只要满足「HTTP访问」或「带www访问」其中一个条件,就跳转到目标地址:

<rule name="Redirect All to HTTPS Non-WWW" stopProcessing="true">
  <match url=".*" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    <add input="{HTTP_HOST}" pattern="^www\.example\.com$" ignoreCase="true" />
  </conditions>
  <action type="Redirect" url="https://example.com/{R:0}" redirectType="Permanent" appendQueryString="false" />
</rule>

小提示

测试的时候一定要清空浏览器缓存!因为301永久重定向会被浏览器缓存很久,旧的重定向记录可能会让你看不到新规则的效果哦~

内容的提问来源于stack exchange,提问作者720p Download Watch Dabangg 3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:11:19