我正在使用 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" />