fsi*_*i90 3 amazon-s3 amazon-cloudfront amazon-web-services
我有一个 S3 静态网站,我想将所有请求重定向到索引页面。所以如果你去mysite.com/this_doesnt_exist
它应该重定向到mysite.com
.
我能够使用自定义错误响应配置此行为,如上图所示,但问题是当我访问时,mysite.com/this_doesnt_exist
我看到了索引页面,但地址栏上的 URL 没有更改。我想让它改变。
我也尝试过在 S3 存储桶上使用重定向规则部分,但在配置 CloudFront 时它似乎不起作用。我有另一个用于测试环境的存储桶,没有配置 CloudFront,它使用以下规则在那里工作:
<RoutingRules>
<RoutingRule>
<Condition>
<HttpErrorCodeReturnedEquals>403</HttpErrorCodeReturnedEquals>
</Condition>
<Redirect>
<ReplaceKeyWith/>
</Redirect>
</RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)
将您的源域名从 更改example-bucket.s3.amazonaws.com
为example-bucket.s3-website.${region}.amazonaws.com
(替换您存储桶的实际区域),以便 S3 重定向规则起作用。CloudFront 中的默认存储桶选择用于存储桶的 REST 终端节点,不会处理重定向规则。
更改<Redirect>
重定向规则中的块,以便Location
S3 重定向生成的标头将您发送到正确的主机名(否则它倾向于将浏览器直接重定向到存储桶的网站托管端点)。这www.example.com
是指向您的 CloudFront 分配的主机名。
<Redirect>
<Protocol>https</Protocol>
<HostName>www.example.com</HostName>
<ReplaceKeyWith/>
</Redirect>
Run Code Online (Sandbox Code Playgroud)
删除自定义错误设置。
为/*
.创建 CloudFront 失效。
等待一切传播,然后重新测试。
归档时间: |
|
查看次数: |
3777 次 |
最近记录: |