同一站点托管在 IIS 的多个端口上

时间:2021-02-22 19:11:28

标签: windows iis iis-7.5

我有一个网站在特定 DNS (https://mypage.com:443/login) 的 443 端口上运行。 现在,我想将其重定向到一个新站点 (mynewsite.com:443)。我已经在 IIS 中的站点中使用了重定向选项,其中我将重定向 URL 指定为 https://mynewsite.com:443。所有到达 https://mypage.com:443/login 的请求都成功重定向到 https://mynewsite.com:443

现在,我有另一个 DNS (https://mysecondDNS:443)。我希望访问此 https://mysecondDNS:443 的用户应仅重定向到 https://mypage.com:443/login

但是直接访问https://mypage.com:443/login的用户应该进入https://mynewsite.com:443

这可以在 IIS 中实现吗。

到目前为止我所尝试的是,我有另一个站点的端口为 8080/8081 并尝试进行重定向,但这似乎不起作用。

有人可以帮助我或指导我如何实现这一目标。

谢谢

1 个答案:

答案 0 :(得分:0)

我针对你的问题想出了另一种解决方案,经过测试是可行的。您可以在重写过程中添加自定义标题。

在我的测试中,我创建了与您的三个域名 mynewsite.com myscondDNS.com and mypage.com 相对应的三个站点。他们都有自己的页面。

当用户访问 mysecondDNS.com 时,他们将被重定向到 mypage.com。根据您的描述,应该会显示mypage.com的页面。只有当用户直接访问 mypage.com 时,请求才会被重定向到 mynewsite.com

为了方便 URL 重写模块识别请求,当 mysecondDNS.com 重定向到 mypage.com 时,我添加了一个自定义标头 HTTP_REQ_from(标头必须以HTTP_) 并将值 mysecondDNS 分配给它。当 mypage.com 重定向到 mynewsite.com 时,会判断头部。如果标头值匹配,则不会重定向请求,如果不匹配,将重定向到 mynewsite.com。

这是添加自定义标题的规则

<rule name="rule">
                <match url=".*" />
                <action type="Rewrite" url="http://mypage.com" />
                <serverVariables>
                    <set name="HTTP_REQ_from" value="mysecondDNS" />
                </serverVariables>
 </rule>

这是判断自定义header的规则

<rule name="rule">
                <match url=".*" />
                <conditions>
                    <add input="{HTTP_REQ_from}" pattern="mysecondDNS" negate="true" />
                </conditions>
                <action type="Rewrite" url="http://mynewsite.com" />
            </rule>

登录失败请求跟踪,mysecondDNS到mypage,不会重定向到mynewsite enter image description here

enter image description here

mypage 重定向到 mynewsite(用户发送的请求,header 中没有 HTTP_REQ_from) enter image description here