You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何配置IIS URL重写规则将请求重定向至带www前缀的HTTPS地址?

如何配置IIS URL重写将流量定向到带www前缀的域名?

Hey there! Let's get this www redirect sorted out properly—your current rule is missing a key piece to avoid infinite loops, so let's fix that and fill in the correct URL value.

核心问题说明

如果直接填写带www的域名而不加条件判断,当用户已经访问https://www.url.com时,规则会再次匹配并重定向,导致浏览器陷入无限循环。所以我们需要先添加一个条件,仅对不带www的域名请求触发重定向。

完整的重定向规则代码

把下面的代码替换你现有的规则,记得将example\.com替换成你实际的域名:

<rewrite>
  <rules>
    <rule name="Add www prefix" stopProcessing="true">
      <match url="(.*)" ignoreCase="true" />
      <!-- 条件:仅当请求的主机头是不带www的域名时触发 -->
      <conditions>
        <add input="{HTTP_HOST}" pattern="^example\.com$" />
      </conditions>
      <!-- 重定向到带www的域名,{R:1}保留原请求的路径部分 -->
      <action type="Redirect" url="https://www.example.com/{R:1}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

关键部分解释

  • stopProcessing="true":添加这个属性可以让规则匹配后停止处理后续规则,提升服务器处理效率。
  • <conditions>块:{HTTP_HOST}是IIS的服务器变量,代表用户请求的域名。正则^example\.com$精确匹配不带www的域名(注意点号要转义成\.,因为正则里点号默认代表任意字符)。
  • url="https://www.example.com/{R:1}"{R:1}对应<match>标签里(.*)捕获的内容,也就是用户请求的路径部分。比如用户访问https://example.com/blog/post,会被重定向到https://www.example.com/blog/post,完美保留原路径。
  • redirectType="Permanent":这是301永久重定向,告诉搜索引擎和浏览器这个重定向是长期有效的,对SEO友好。如果只是临时需求,可以改成Temporary(302重定向)。

额外注意事项

  • 确保你的IIS服务器已经安装了URL Rewrite模块,如果没装,这个规则不会生效。你可以在IIS管理器的模块列表里查看,或者从微软官方渠道下载安装。
  • 测试时建议用浏览器隐私窗口,避免旧的重定向缓存干扰测试结果。

内容的提问来源于stack exchange,提问作者Chris

火山引擎 最新活动