问题描述
我有一个网站在特定 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 并尝试进行重定向,但这似乎不起作用。
有人可以帮助我或指导我如何实现这一目标。
谢谢
解决方法
我针对你的问题想出了另一种解决方案,经过测试是可行的。您可以在重写过程中添加自定义标题。
在我的测试中,我创建了与您的三个域名 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>