![在 IIS 7.5 中将 URL 重定向到另一个 URL](https://linux22.com/image/596151/%E5%9C%A8%20IIS%207.5%20%E4%B8%AD%E5%B0%86%20URL%20%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%8F%A6%E4%B8%80%E4%B8%AA%20URL.png)
我不知道为什么这不起作用。我尝试过创建地图规则,然后重写并重定向 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 重定向来执行此操作?