0

我有多个网站指向一个中央文件夹(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 并且所有网站都指向同一个文件夹?任何帮助将不胜感激。谢谢

4

1 回答 1

0

检查是否启用了 HTTPS 时应包含主机标头,然后重定向到相应域的 https URL。

这是一个例子:

<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 证书。

于 2012-11-07T11:48:29.890 回答