Windows-Server-2016(AWS) 中的 IIS10 无法将 HTTP 请求重定向到 HTTPS

IIS10 in Windows-Server-2016(AWS) unable to redirect HTTP request to HTTPS

windows-server-2016 中的 IIS-10 无法将 HTTP 请求重定向到 HTTPS。

我尝试了互联网上几乎所有可用的配置,但仍然没有成功。

注意:我的服务器也会得到子目录url和一些例子,例如:

http://abctest.com/subfolder_1

http://abctest.com/subfolder_2

http://abctest.com

etc.

可能有 N 个子文件夹。),但 IIS-10 无法将 Http 请求重定向到 Https。

请在 IIS-10 GUI 和 web.config 文件中找到以下配置:

您可以使用下面的 URL 重写规则将子文件夹 URL 重定向到 https:

<rule name="http to https" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" />
            </rule>

另外,在站点绑定中绑定证书。如果您没有注册证书,您可以绑定 self-signed 证书。

首先,您需要使用以下 Powershell 命令创建 self-signed 证书:

New-SelfSignedCertificate -DnsName www.test.com -CertStoreLocation cert:Localmachine\My

并将该证书与 IIS 站点绑定:

此致, 贾尔帕

    <rewrite>
        <rules>
            <rule name="http -> https" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
                <match url="*" />
                <conditions trackAllCaptures="true">
                    <add input="{HTTPS}" pattern="off" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Temporary" />
            </rule>
        </rules>
    </rewrite>

这是我在生产环境中使用的工作版本。适用于绑定到站点以及子文件夹的任何绑定。如果您不喜欢 xml,这里是它的屏幕截图。然后唯一让我抓到一两次的另一件事是确保您同时拥有要重定向的 url 的 http 和 https 绑定。

我通过按顺序排列规则解决了这个问题。 (始终按顺序定义入站规则)。

感谢所有支持此查询的人。