在 IIS 中的同一个网站上,我们有 2 个绑定,域名为“old.example.org”和“new.example.org”。
当有人调用“https://old.example.org/abc/?xyz=123”时,我想发送永久重定向到“https://new.example.org/abc/?xyz=123”
如果我使用 IIS 的 Http Redirect 模块,我会得到无限重定向,因为两个域名都针对同一个网站。
我可以在应用程序代码中执行此操作,但实际上在 IIS 或之前的某个地方执行此操作会更好,是否可以在 IIS 以外的另一个级别或在 IIS 中以不同方式设置这种永久重定向以避免无限循环?
答案1
您可以使用 URL 重写模块
<rule name="CanonicalHostNameRule" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{HTTP_HOST}" pattern="^old.example.org$" />
</conditions>
<action type="Redirect" url="https://new.example.org/{R:1}" />
</rule>