将子域URL重定向到IIS中的另一个子域

时间:2014-08-01 14:13:18

标签: iis-7.5 url-redirection http-redirect

我需要将“假”子域重定向到IIS 7.5中的真实子域。原因是营销部门不想在打印件中使用实际的网址。

实际网站网址

reporting.usapartners.com

营销部门希望 report.usapartners.com(假)到重定向到 reporting.usapartners.com(真实)

同样,report.usapartners.com不存在,只有reporting.usapartners.com存在

以下是我尝试的内容

我在IIS中添加了一个绑定,用于站点reporting.usapartners.com。我添加了report.usapartners.com作为主机名,并使用了reporting.usapartners.com IP地址

然后我进入reporting.usapartners.com web.config并添加了这个:

<rewrite>
    <rules>
        <rule name="report" stopProcessing="true">
          <conditions logicalGrouping="MatchAll">
            <add input="{HTTP_HOST}" pattern="report.usapartners.com" negate="false" />
          </conditions>
          <action type="Redirect" url="http://reporting.usapartners.com" appendQueryString="false" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

看起来我的解决方案创建了一个无法重定向到的别名。

我是否正确地解决了这个问题?似乎它应该是一个简单的问题要解决,但也许不是?任何想法都受到欢迎和赞赏。

由于

2 个答案:

答案 0 :(得分:7)

我认为您需要在IIS中为report.usapartners.com(虚假网站)创建一个具有主机绑定的单独网站。这将是一个存根站点(它仍然需要磁盘上的路径,但它只有一个web.config),它只会托管一个重定向规则。

现在点击IIS中该网站的HTTP Redirect,然后勾选Redirect requests to this destination并将http://reporting.usapartners.com放入文本框中。然后勾选Redirect all requests to exact destination (instead of relative to destination),不要勾选下一个,然后选择状态代码Permanent (301)

如果您希望它重定向并保留子目录和/或查询字符串,则可以将文本框的内容更改为http://reporting.usapartners.com$S$Q。请注意,在这种情况下没有尾部斜杠。 $S保留子目录,$Q保留查询字符串。

答案 1 :(得分:4)

您的规则导致重定向循环。

观察您的规则:

  • 匹配任何给定的网址(包括&#34; /&#34;,&#34; /某事&#34;,&#34; /something/another.html"等。)
  • 如果主机名为ISN&#39; T&#34; report.usapartners.com&#34;
  • 将请求永久重定向至&#34; http://reporting.usapartners.com&#34;

因此,如您所见,只要用户被重定向到报告子域,就会再次将其重定向到报告,因为主机名不是&#34; report.usapartners.com&#34;。

<击> 这里的关键是规则条件的negate="true"属性。删除它或将其设置为false,你很高兴。

修改

你快到了。

真正的解决方案是将规则上的主机名更改为所需的主机,保持否定为true,这样您的规则就可以了:

  • 匹配任何给定的网址(包括&#34; /&#34;,&#34; /某事&#34;,&#34; /something/another.html"等。)
  • 如果主机名为ISN&#39; T &#34; reporting.usapartners.com&#34;
  • 将请求永久重定向至&#34; http://reporting.usapartners.com&#34;

代码:

...
<add input="{HTTP_HOST}" pattern="reporting.usapartners.com" negate="true" />
...