代码之家  ›  专栏  ›  技术社区  ›  Matt Spinks

这个重写规则出了什么问题

  •  0
  • Matt Spinks  · 技术社区  · 3 年前

    我正试图创建一个重定向规则,将旧网站上我的一个页面的所有流量引导到我的新网站。我已在旧IIS服务器上的父web.config中创建了以下规则:

                <rule name="redirect to survey domain" stopProcessing="true">
                    <match url="takesurvey" />
                    <conditions>
                        <add input="{HTTPS}" pattern="^emory.zanek.net$" />
                    </conditions>
                    <action type="Redirect" url="https://survey.zanek.net/{R:1}" redirectType="Temporary" />
                </rule>
    

    从本质上讲,我想将特定页面takesurvey的所有流量重定向到一个新的调查域。因此,如果用户导航到:

    https://emory.zanek.net/goalw4/takesurvey.aspx?id=fasidisdf

    它应该重定向到:

    https://survey.zanek.net?id=fasidisdf

    但是,当我应用规则,然后导航到 https://emory.zanek.net/goalw4/takesurvey.aspx?id=fasidisdf ,它永远挂着。我在这里错过了什么?

    0 回复  |  直到 3 年前
        1
  •  0
  •   user4074875    3 年前

    您正在指定{HTTP_HOST},但两个URL都是HTTPS,它们在不同的TCP协议上运行。

    对于您的简单场景,我只需在您的输入行中将{HTTP_HOST}更改为{HTTPS}。

    有关这一点以及实现更复杂/多个交叉类型的健壮方法的更多信息,请参阅下面的链接。

    Web config rewrite HTTPS