【问题标题】:AWS CloudFront redirect to pathAWS CloudFront 重定向到路径
【发布时间】:2020-06-21 20:38:55
【问题描述】:

我有一个 CloudFront 分配,它将 www.myapp.com 重定向到存储我的网站的 S3 存储桶。 该发行版使用 CName www.myapp.com 和默认根对象“index.html”。

我还想将 www.myapp.com/path 重定向到同一个存储桶,以便用户可以通过 www.myapp.com 和 www.myapp.com/path 访问我的网站。

有人知道如何使用 CloudFront 将自定义路径重定向到存储桶吗?

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-cloudfront


    【解决方案1】:
    1. 这不是重定向,而是原始行为
    2. 您可以为原点设置不同的原点路径和行为的路径模式。行为是目标,起源是目的地

    【讨论】:

    • 好的,所以我的存储桶有一个名为 mywebsite 的文件夹和一个名为 index.html 的文件,我的存储桶名称和路径 /mywebsite 有一个单一来源。我需要应用哪个行为/默认根对象 我可以通过 www.website.com/path 访问我的网站
    • /path 作为行为的路径模式,/mywebsite 作为 Origin 的源路径,index.html 作为分发的默认根对象
    • 我认为分发的默认根对象仅适用于您的分发的根,因此它只会转到 www.website.com 的 index.html 而不是 www.website.com/path
    • 哦,你是对的。刚刚发现 AWS 对此的回应:aws.amazon.com/premiumsupport/knowledge-center/…
    【解决方案2】:

    使用 /path/ 的行为和原始请求的 lambda 函数解决了这个问题:

    exports.handler = async (event, context, callback) => {
        const response = {
            status: '301',
            statusDescription: 'Moved Permanently',
            headers: {
                location: [{
                    key: 'Location',
                    value: "https://" + event.Records[0].cf.request.headers.host[0].value.replace(".s3.amazonaws.com", ""),
                }],
            },
        };
    
        callback(null, response);
    };
    

    【讨论】:

      猜你喜欢
      • 2018-06-27
      • 2016-12-08
      • 1970-01-01
      • 2015-10-12
      • 2016-10-06
      • 2023-03-10
      • 1970-01-01
      • 2023-03-29
      相关资源
      最近更新 更多