我有一个网站,我将把它的名字从 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"
这是它不起作用的原因。
规则匹配所有内容,但条件阻止所有内容,因此没有任何内容被重定向。
仅当您确实需要它们来进一步限制与规则匹配的请求时才使用条件。