我有一个我在ASP.NET C#中编写的应用程序。两个域指向该站点。 在web.config中我想重写网址,所以如果输入http://domain.com,它会重定向到https://www.domain.com
此外,如果输入http://domain2.com,则应重定向到https://www.domain2.com
当它只有一个域时,我看到了一堆例子。想知道2个域指向同一站点时是否可能。当我尝试时,我得到了重定向循环。
答案 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.com或https://domain2.com重定向到https://www.domain.com和https://www.domain2.com,您需要为:domain.com/www.domain.com和domain2.com启用https /www.domain2.com。它必须在IIS中启用,否则IIS将阻止对未绑定的https请求的请求,并且甚至不会通过重写URL处理该请求。