我有多个网站指向中央文件夹(IIS 7.5)
company1.domain.com/wo指向D:\ inetpub \ wo
company2.domain.com/wo指向D:\ inetpub \ wo
company3.domain.com/wo指向D:\ inetpub \ wo
所有网站都适用于HTTP和HTTPS(如果手动输入)。但是,站点必须通过HTTPS连接。我想设置自动SSL重定向但遇到问题。我创建了URL重写规则,但由于这只是一个webconfig文件,因此URL重定向到一个网站(不保留URL)。 如何设置SSL重定向以保留URL并且所有网站都指向同一文件夹? 任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
在检查是否启用了HTTPS时,您应该包含主机标头,然后重定向到相应域的https网址。
以下是一个例子:
<rewrite>
<rules>
<clear />
<rule name="Force HTTPS - www.domain1.com" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" negate="true" pattern="^ON$" />
<add input="{HTTP_HOST}" pattern="\.domain1\.com$" />
</conditions>
<action type="Redirect" url="https://www.domain1.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>
<rule name="Force HTTPS - www.domain2.com" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" negate="true" pattern="^ON$" />
<add input="{HTTP_HOST}" pattern="\.domain2\.com$" />
</conditions>
<action type="Redirect" url="https://www.domain2.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>
<!-- add more rules for other domains if needed -->
</rule>
</rules>
</rewrite>
您可以根据需要为域名添加任意数量的规则。
编辑:抱歉,我误解了你的问题。在这种情况下,它甚至更简单:
<rewrite>
<rules>
<clear />
<rule name="Force HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" negate="true" pattern="^ON$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
无需检查主机标头,只需在重定向中包含主机名即可。您只需要确保所有域名都有SSL证书。