我有一个旧网站,我正在转移到s3,除了我移动到另一个子域(不是s3)的一些页面。他们的网址如下:
<section class="shop-list">
<div class="add-item">
<input id="item-add" type='text' placeholder="Enter item to shopping list..." name="itemAdd"></input>
<button class="add-btn">Add Item</button>
</div>
<div class="item-list">
<h2>Shopping List</h2>
<ul class="check-list">
<li><input type="checkbox" id="select-all"/>Select All</li>
</ul>
</div>
<div class="removal">
<button class="rem-btn">Remove Selected</button>
</div>
</section>
我想将其重定向到以下网址:
http://www.example.com/2015/09/07/some-url
我似乎无法让它发挥作用,这是我的重定向规则:
http://subdomain.example.com/2015/09/07/some-url
另外,我是否必须在s3存储桶中实际创建空目录才能使规则生效?
答案 0 :(得分:2)
您无需空目录即可使用此功能。但是,您可能希望删除尾部斜杠。
<KeyPrefixEquals>2015/09/07/some-url/</KeyPrefixEquals>
... ...变为
<KeyPrefixEquals>2015/09/07/some-url</KeyPrefixEquals>
如果不是由传入请求提供,则目标服务器通常会添加尾部斜杠(如果需要)。
此外,除非值正在改变,否则您不需要设置<ReplaceKeyPrefixWith>
。
答案 1 :(得分:0)
https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html
通过REST API设置页面重定向 以下Amazon S3 API操作支持请求中的x-amz-website-redirect-location标头。 Amazon S3将标头值存储在对象元数据中,作为x-amz-website-redirect-location。
PUT对象
启动分段上传
POST对象
PUT对象-复制
设置页面重定向时,可以保留或删除对象内容。例如,假设您的存储桶中有一个page1.html对象。
要保留page1.html的内容并仅重定向页面请求,可以提交PUT对象-复制请求以创建一个使用现有page1.html对象作为源的新page1.html对象。在您的请求中,设置x-amz-website-redirect-location标头。请求完成后,您将拥有原始页面,其内容不变,但是Amazon S3将对该页面的所有请求重定向到您指定的重定向位置。
要删除page1.html对象的内容并重定向页面请求,可以发送PUT Object请求以上传具有相同对象键:page1.html的零字节对象。在PUT请求中,将page1.html的x-amz-website-redirect-location设置为新对象。请求完成后,page1.html没有内容,请求将重定向到x-amz-website-redirect-location指定的位置。
当您使用GET Object操作检索对象以及其他对象元数据时,Amazon S3在响应中返回x-amz-website-redirect-location标头。