IIS URL 重写以重定向对域的所有请求
IIS URL Rewrite to redirect all requests for a domain
我有一个托管多个域的 Web 服务器 运行 IIS 8.5。其中一个域即将消失,需要重定向到服务器上另一个域的根目录。我在下面创建了规则,只要没有路径,它就可以正常工作。如果有路径,它会附加路径并导致 404 错误。我想忽略路径,只重定向到 www.DomainB.com。我认为只有在我将 http://www.DomainB.com/{R:1} 作为重定向 url 时才会包含路径,但事实并非如此。我哪里错了?
<rule name="Redirect DomainA.com">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^.*DomainA.com$" />
</conditions>
<action type="Redirect" url="http://www.DomainB.com/" redirectType="Found"/>
</rule>
我想通了。以上其实还不错。这是 DomainB 的另一条规则,设置为从 www 重定向到非 www,这导致了问题。它在条件中没有 DomainB,而是一个与任何 www 匹配的正则表达式,并且该规则上确实有 {R:1},因此该路径实际上是在 DomainA.com 规则之后由该规则附加的处理。在将该规则指定为 DomainB 之后,上述重定向 DomainA.com 规则按原样工作
我有一个托管多个域的 Web 服务器 运行 IIS 8.5。其中一个域即将消失,需要重定向到服务器上另一个域的根目录。我在下面创建了规则,只要没有路径,它就可以正常工作。如果有路径,它会附加路径并导致 404 错误。我想忽略路径,只重定向到 www.DomainB.com。我认为只有在我将 http://www.DomainB.com/{R:1} 作为重定向 url 时才会包含路径,但事实并非如此。我哪里错了?
<rule name="Redirect DomainA.com">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^.*DomainA.com$" />
</conditions>
<action type="Redirect" url="http://www.DomainB.com/" redirectType="Found"/>
</rule>
我想通了。以上其实还不错。这是 DomainB 的另一条规则,设置为从 www 重定向到非 www,这导致了问题。它在条件中没有 DomainB,而是一个与任何 www 匹配的正则表达式,并且该规则上确实有 {R:1},因此该路径实际上是在 DomainA.com 规则之后由该规则附加的处理。在将该规则指定为 DomainB 之后,上述重定向 DomainA.com 规则按原样工作