我已经设置了一个s3存储桶来托管我的网站,并设置了cloudfront来指向我的s3存储桶。所有发送到cloudfront的请求都将进入我的s3存储桶。我要设置的重定向规则仅适用于s3存储桶中的文件之一。 s3中有一个JavaScript文件/folderA/index.js
。而且我想应用一条规则来将对此文件的请求重定向到另一个文件/folderB/index.js
。如何设置?是否需要在s3存储桶或cloudfront上设置?
答案 0 :(得分:0)
我认为您无法为文件定义S3重定向规则。我相信它是在存储桶级别。
您可以将/folderB/index.js
的内容复制到/folderA/index.js
中,因此不需要重定向。
或者,您可以设置查看器请求lambda @ edge函数,该函数将在路径等于/folderA/index.js
的情况下重定向
类似:
'use strict';
exports.handler = (event, context, callback) => {
/*
* Generate HTTP redirect response with 301 status code and Location header.
*/
const request = event.Records[0].cf.request;
const uri = request.uri;
if (ur.endsWith('/folderA/index.js`) {
const redirectTo = //where you want to redirect
console.log(`Redirecting ${uri} with to: ${redirectTo}`);
const response = {
status: '301',
statusDescription: 'Found',
headers: {
location: [{
key: 'Location',
value: redirectTo,
}],
},
};
callback(null, response);
} else {
callback(null, request);
}
};