IIS将旧域重定向到新域,并保持路径

时间:2018-07-13 13:46:10

标签: url redirect iis dns

这在某种程度上可行,http://newdomain.com/link将重定向到https://www.newdomain.com/link。但是,http://olddomain.com/link重定向到https://www.newdomain.com(丢失路径)。

<rule name="Enforce HTTPS and www.newdomain.com" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAny">
        <add input="{HTTPS}" pattern="off" />
        <add input="{HTTP_HOST}" pattern="olddomain\.com$" />
        <add input="{HTTP_HOST}" pattern="^newdomain\.com$" />
    </conditions>
    <action type="Redirect" url="https://www.newdomain.com/{R:1}" redirectType="Permanent" />
</rule>

我相信代码是正确的,但是在进行域到域重定向时它不起作用。 IIS中的其他操作首先进行了重定向,因此不遵守该规则(可能甚至从未使用过)。

这可能不是IIS重定向问题的主要内容,而是一个有关此规则之前可能导致该预重定向的问题。我没有其他与网域有任何关系的规则。

对此有何见识?

1 个答案:

答案 0 :(得分:1)

感谢@Dusan Bajic,我知道了。

我完全删除了重定向。当我这样做时,某些重定向已停止工作。但是,仍然发生了从旧域到新域的重定向(并且以相同的方式删除了路径)。这使我能够将问题隔离在IIS重定向之外。

请找出来,问题出在我们的负载均衡器上。对于旧域,它正在进行自己的重定向,因此旧域从未到达IIS。一旦删除了负载均衡器重定向,它便进入了IIS,并且上面的重定向完美无误。

因此,解决方案是删除重定向并查看重定向是否仍然发生。如果是这样,请查看进行重定向的“上游”内容。我不知道我们的负载均衡器是否进行了重定向,但是我现在知道了!

感谢杜尚·巴吉奇的协助