jot*_*ttr 4 redirect amazon url-rewriting amazon-s3 amazon-web-services
我有一个亚马逊 S3 存储桶,从S3bucketurl.com/foo/index.html.
我想配置一个重定向规则,它会自动重写 URL,如下所示:
访问S3bucketurl.com应自动重定向到S3bucketurl.com/foo,并提供index.html包含在子文件夹中的文件foo。
我试图这样设置重定向规则:
<RoutingRules>
<RoutingRule>
<Condition>
<KeyPrefixEquals>/</KeyPrefixEquals>
</Condition>
<Redirect>
<ReplaceKeyWith>api</ReplaceKeyWith>
</Redirect>
</RoutingRule>
</RoutingRules>
Run Code Online (Sandbox Code Playgroud)
结果是404:
404 Not Found
Code: NoSuchKey
Message: The specified key does not exist.
Key: index.html
Run Code Online (Sandbox Code Playgroud)
我也试过排列<ReplaceKeyWith>/api</ReplaceKeyWith>,<ReplaceKeyWith>api/</ReplaceKeyWith>并<ReplaceKeyWith>/api/</ReplaceKeyWith>无济于事。
<KeyPrefixEquals>/</KeyPrefixEquals>
这里有两个问题:首先,这匹配一个prefix,这意味着最后有一个隐式*。这不是你想要的,在这里。此外,S3 存储桶中的键通常没有前缀/. 对象键以前导斜杠后的字符开头。您的<ReplaceKeyWith>被忽略,因为前缀测试永远不会匹配。但在这里,规则并不是最好的解决方案。
做你想做的事情的方法是这样的:
上传一个空文件以在存储桶的根目录中创建一个新对象,命名为您用于索引文档的任何名称,通常为index.html. 除非您的存储桶策略公开所有内容,否则将其设为公开。
在此对象的对象元数据中,设置x-amz-website-redirect-location为/api/(或/foo/,或您想要的任何路径)。
| 归档时间: |
|
| 查看次数: |
2299 次 |
| 最近记录: |