2个域名,1个网站,网址使用https

时间:2016-04-07 19:48:17

标签: asp.net https url-rewriting

我有一个我在ASP.NET C#中编写的应用程序。两个域指向该站点。 在web.config中我想重写网址,所以如果输入http://domain.com,它会重定向到https://www.domain.com

此外,如果输入http://domain2.com,则应重定向到https://www.domain2.com

当它只有一个域时,我看到了一堆例子。想知道2个域指向同一站点时是否可能。当我尝试时,我得到了重定向循环。

1 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

<rule name="NON-WWW HTTPS DOMAIN" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^domain\.com$" />
    <add input="{HTTPS}" pattern="^ON$" />
  </conditions>
  <action type="Redirect" url="https://www.domain.com/{R:0}" />
</rule>
<rule name="Redirect to domain HTTPS" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^[www\.]*domain\.com$" />
    <add input="{HTTPS}" pattern="^OFF$" />
  </conditions>
  <action type="Redirect" url="https://www.domain.com/{R:0}" />
</rule>
<rule name="Redirect to domain2 HTTPS" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^[www\.]*domain2\.com$" />
    <add input="{HTTPS}" pattern="^OFF$" />
  </conditions>
  <action type="Redirect" url="https://www.domain2.com/{R:0}" />
</rule>
<rule name="NON-WWW HTTPS DOMAIN 2" stopProcessing="true">
  <match url=".*" />
  <conditions>
    <add input="{HTTP_HOST}" pattern="^domain2\.com$" />
    <add input="{HTTPS}" pattern="^ON$" />
  </conditions>
  <action type="Redirect" url="https://www.domain2.com/{R:0}" />
</rule>

要将https://domain.comhttps://domain2.com重定向到https://www.domain.comhttps://www.domain2.com,您需要为:domain.com/www.domain.com和domain2.com启用https /www.domain2.com。它必须在IIS中启用,否则IIS将阻止对未绑定的https请求的请求,并且甚至不会通过重写URL处理该请求。