在 IIS 中重定向 www.* URL

在 IIS 中重定向 www.* URL

我需要找到一种简单而通用的方法来捕获任何http://www.sub.example.comURL 并将其重定向到http://sub.example.com(即删除 www)

我希望为服务器实现一次这个,而不是为每个站点实现这个,也许使用 IIS Rewriter?

答案1

您需要在 IIS URL 重写模块中制定重定向规则,如下所示:

匹配网址
请求的 URL:Matches the Pattern
使用:Regex
模式:*Ignore case

状况
逻辑分组:Match Any
输入:{HTTP_HOST}
类型:匹配模式模式:^(www\.)(.*)$

服务器变量 留着空白。

行动 操作类型:Redirect
重定向 URL:https://{C:2}{PATH_INFO}
附加查询字符串:checked重定向类型:Permanent (301)

应用规则并运行 IISReset。

或者,安装模块后,您可以按如下方式修改 web.config:

<rewrite>
    <rules>
        <rule name="Strip www" enabled="true" patternSyntax="Regex" stopProcessing="true">
            <match url="*" negate="false" />
            <conditions logicalGrouping="MatchAny">
                <add input=""{HTTP_HOST}" pattern="^(www\.)(.*)$" />
            </conditions>
            <action type="Redirect" url="https://{C:2}{PATH_INFO}" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

此规则旨在检查任何 URL (*),在 {HTTP_HOST} 中查找“www.”(默认情况下不区分大小写)的实例,然后重定向到规范主机名的第二部分 {C:2},并将路径的其余部分附加到末尾 {PATH_INFO}。如果请求的内容类似于它http://bad.www.example.com/some/page.html会返回的内容https://www.example.com/some/page.html,则此规则可能会失败,但它应该适用于大多数情况。

相关内容