配置 IIS 重写模块以将任何主机名重定向到特定主机名

配置 IIS 重写模块以将任何主机名重定向到特定主机名

我有一个网站,我将把它的名字从 example.com 改为 newexample.com。我的想法是(请对此发表评论,因为我的方法可能不正确)配置从 http:(s):// 永久重定向.example.com/(我没有使用'' 在这里是字面正则表达式的意思)https://www.newexample.com/

在重写规则部分我采用了以下方法:

<rewrite>
  <rules>
    <rule name="Redirect to newexample.com">
      <match url=".*" />
      <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern=".*" negate="true" />
      </conditions>
      <action type="Redirect" url="https://www.newexample.com/{R:0}" redirectType="Permanent"/>
    </rule>
  </rules>
</rewrite>

我理解上述规则的方式是,任何主机名都将重定向到“https://www.newexample.com/whatever“,保留所请求 URL 的所有其他方面,但是我没有使用到目前为止尝试过的任何组合进行重定向。

答案1

conditions从规则中删除整个节点。

条件中的模式与规则中的模式相同,这使其变得多余,除了属性之外,negate="true"这是它不起作用的原因。

规则匹配所有内容,但条件阻止所有内容,因此没有任何内容被重定向。

仅当您确实需要它们来进一步限制与规则匹配的请求时才使用条件。

相关内容