当我使用 s3 和 cloudfront 时如何将 example.com 重定向到 www.example
how can I redirect example.com to www.example when I use s3 and cloudfront
我正在使用 AWS Cloudfront 分发我的主页。
http://www.example.com, https://example.com, http://example.com
所有三个 URL 都必须重定向到主 url https://www.example.com.
问题是 https://example.com 域重定向失败。
我在 s3 上创建了一个 www.example.com 存储桶,并使用 SSL 证书(用户 aws 证书管理器)将其分发到云端。我将云端端点连接到 route53 使用的 www.example.com url。所以 http://www.example.com => https://www.example.com 重定向是成功的。
然后我在 s3 上创建了一个 example.com 存储桶并移动到属性 > 静态网站托管 > 重定向请求然后设置目标存储桶 = www.example.com 和协议 = https
结果是http://example.com成功重定向到https://www.example.com,但是 https://example.com 到 https://www.example.com 连接失败。
你有没有解决同样的问题?
谢谢。
更新我的云端设置
根据我的经验,我打赌我能猜出这里发生了什么。在 CloudFront 中的 Origin 配置中,您可以将 Origin Protocol Policy
设置为使用 HTTP
、HTTPS
或 Match Viewer
连接到源。如果您将其设置为 Match Viewer
,它将尝试通过 HTTPS 连接到您域的 S3 静态托管,这可能会出现问题。相反,将其设置为 HTTP
然后事情可能会起作用。
此外,您可能希望将 example.com
分配与 www.example.com
分配分开,因为 CloudFront 通常根据路径区分与来源相关的行为。
这是我的解决方法,
SSL 证书:
example.com
*.example.com
CloudFront 分配 1:
CNAME example.com
Certificate: example.com
Viewer Protocol Policy -- Redirect HTTP to HTTPS
Origin and Behaviour --
To S3 Bucket to redirect
Redirect to https://www.example.com
CloudFront 分配 2:
CNAME www.example.com
Certificate: www.example.com
Viewer Protocol Policy -- Redirect HTTP to HTTPS
另外,请注意 *.example.com 证书与 example.com 证书不匹配。
我正在使用 AWS Cloudfront 分发我的主页。
http://www.example.com, https://example.com, http://example.com
所有三个 URL 都必须重定向到主 url https://www.example.com.
问题是 https://example.com 域重定向失败。
我在 s3 上创建了一个 www.example.com 存储桶,并使用 SSL 证书(用户 aws 证书管理器)将其分发到云端。我将云端端点连接到 route53 使用的 www.example.com url。所以 http://www.example.com => https://www.example.com 重定向是成功的。
然后我在 s3 上创建了一个 example.com 存储桶并移动到属性 > 静态网站托管 > 重定向请求然后设置目标存储桶 = www.example.com 和协议 = https
结果是http://example.com成功重定向到https://www.example.com,但是 https://example.com 到 https://www.example.com 连接失败。
你有没有解决同样的问题?
谢谢。
更新我的云端设置
根据我的经验,我打赌我能猜出这里发生了什么。在 CloudFront 中的 Origin 配置中,您可以将 Origin Protocol Policy
设置为使用 HTTP
、HTTPS
或 Match Viewer
连接到源。如果您将其设置为 Match Viewer
,它将尝试通过 HTTPS 连接到您域的 S3 静态托管,这可能会出现问题。相反,将其设置为 HTTP
然后事情可能会起作用。
此外,您可能希望将 example.com
分配与 www.example.com
分配分开,因为 CloudFront 通常根据路径区分与来源相关的行为。
这是我的解决方法,
SSL 证书:
example.com
*.example.com
CloudFront 分配 1:
CNAME example.com
Certificate: example.com
Viewer Protocol Policy -- Redirect HTTP to HTTPS
Origin and Behaviour --
To S3 Bucket to redirect
Redirect to https://www.example.com
CloudFront 分配 2:
CNAME www.example.com
Certificate: www.example.com
Viewer Protocol Policy -- Redirect HTTP to HTTPS
另外,请注意 *.example.com 证书与 example.com 证书不匹配。