在AWS上创建https重定向的步骤

时间:2018-10-18 00:48:34

标签: amazon-web-services

我还没有找到权威的消息来源。

如果我拥有www.example.com网站,我该怎么做:

  1. 将www.example.com重定向到https://www.example.com
  2. 将example.com重定向到https://www.example.com
  3. https://example.com重定向到https://www.example.com

想象我已经安装了ec2,并且想在AWS上使用Cloud Front

1 个答案:

答案 0 :(得分:0)

这有点棘手,因为Cloudfront会为您终止https连接,并使用http将请求转发到您的Web服务器。如果您正在EC2框上进行一些本地检查,并且您可能想要设置运行状况检查URL(Cloudfront用于确定您也没有执行的实例的运行状况),则您可能还不想重定向http://localhost不想重定向。

我们使用IIS,并按照以下规则使用了重写模块。我敢肯定,使用Apache可以完成相同的工作,但是我不太熟练使用Apache重写语法。也许有人可以添加特定于Apache的答案。

<system.webServer>
<rewrite>
  <rules>
    <rule name="Keep localhost on http"
              stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll"
                  trackAllCaptures="false">
        <add input="{HTTP_HOST}"
             pattern="localhost" />
      </conditions>
      <action type="None" />
    </rule>
    <rule name="Ignore health check" stopProcessing="true">
      <match url="health.html" />
      <action type="None" />
    </rule>
    <rule name="Force Https" stopProcessing="true">
      <conditions>
        <add input="{HTTP_X_FORWARDED_PROTO}" pattern="https" negate="true" />
      </conditions>
      <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>
</system.webServer>