【问题标题】:IIS redirect old domain to new domain keeping the pathIIS 将旧域重定向到保留路径的新域
【发布时间】:2018-12-21 22:12:08
【问题描述】:

这有点工作,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 重定向问题,而是在此规则之前还有什么可能导致此预重定向的问题。我根本没有其他与域有关的规则。

对此有何见解?

【问题讨论】:

  • 这条规则在哪里?
  • web.config 文件
  • newdomain 和 olddomain 是否设置了网站?
  • 好点 Dusan,同一个网站上的两个域都有绑定。所以一个网站。
  • 如果您删除此规则,是否会发生任何重定向?

标签: url redirect iis dns


【解决方案1】:

感谢@Dusan Bajic,我想通了。

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

来看看,问题出在我们的负载均衡器上。对于旧域,它自己进行重定向,因此旧域从未到达 IIS。一旦负载均衡器重定向被移除,它就会进入 IIS,上面的重定向完美无缺。

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

感谢杜桑·巴吉奇的协助

【讨论】:

    猜你喜欢
    • 2015-09-29
    • 2019-07-16
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2016-04-03
    相关资源
    最近更新 更多