IIS 重定向到 www

IIS 重定向到 www

我正在使用 IIS 7 托管 Web 应用程序。目前,我在 web.config 中有一个规则,将所有流量重定向到 HTTPS,但它不会自动将流量重定向到 www,这对于某些功能很重要。web.config 显示如下:

<rewrite>
      <rules>
          <rule name="HTTP to HTTPS redirect" stopProcessing="true">
              <match url="(.*)" />
              <conditions>
                  <add input="{HTTPS}" pattern="off" ignoreCase="true" />
                  <add input="{URL}" pattern="seek\.svc$" ignoreCase="true" negate="true" />
              </conditions>
              <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
          </rule>
      </rules>
  </rewrite>

有人能告诉我如何将所有请求重定向到 www 吗? 使用此路由或使用 IIS GUI。

我发现了这一点:IIS 6 - 设置 301 重定向,将非 www 重定向到 www,以进行 SEO

这确实有用,但创建重复的网站对我来说似乎有点麻烦。还有其他建议吗?

谢谢

答案1

在现有规则集之前创建第二个规则集,不带标志stopProcessing,并添加与任何其他内容相匹配的条件www.并将否定标志设置为 true,如下所示:

<add input="{HTTP_HOST}" pattern="^www\.([.a-zA-Z0-9]+)$" negate="true" />

然后将 添加www.到你的操作的 URL 中,如下所示:

<action type="Redirect" redirectType="Found" url="http://www.{HTTP_HOST}/{R:0}" appendQueryString="true" />

相关内容