在 IIS 7.5 中将 URL 重定向到另一个 URL

在 IIS 7.5 中将 URL 重定向到另一个 URL

我不知道为什么这不起作用。我尝试过创建地图规则,然后重写并重定向 URL。我尝试过使用简单的重写规则重定向它,无论如何,唯一能让它工作的时间是如果我将匹配 URL 设置为匹配此正则表达式 .*。

我正在尝试将 webmail.example.com 重定向到 mail.example.com。看起来这只需要几秒钟;天哪,我错了。我想我的正则表达式肯定出了问题,但我不确定是什么问题,因为当我测试它时,它似乎工作正常。

            <rule name="webmail" patternSyntax="ECMAScript" stopProcessing="true">
                <match url=".*webmail.*" />
                <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                </conditions>
                <action type="Redirect" url="https://mail.example.com:8000" appendQueryString="false" logRewrittenUrl="true" />
            </rule>

谢谢

答案1

域名不是 URL 的一部分,因此您无法匹配它。您必须添加条件来匹配变量HTTP_HOST。如果您希望重定向该域上的任何 URL,则必须再次匹配.*

例如以下内容可能就是您想要的:

<rule name="webmail">
    <match url=".*" />
    <conditions>
        <add input="{HTTP_HOST}" type=”Pattern” pattern="^webmail\.example\.com$">
    </conditions>
    <action type="Redirect" url="https://mail.example.com:8000" />
</rule>

答案2

为什么不创建两个带有主机标头的 IIS 站点呢?对于 webmail.example.com,您可以使用IIS 管理器 -> HTTP 重定向来执行此操作

相关内容