【问题标题】:Page Level redirection for S3 hosted websiteS3 托管网站的页面级重定向
【发布时间】:2021-07-02 11:04:32
【问题描述】:

我有一个网站(例如 example.com)托管在 AWS S3(存储桶名称 - “xyz”)上,并通过 Cloudfront 分发提供流量。 CDN 按照惯例将 Origin 映射到 S3 以传递内容。 DNS (Route 53) 记录映射到此 CDN 分布。

我最近从这个 S3 存储桶中删除了一个对象,比如 xyz/hello/hello-jon 因此,当用户尝试点击 example.com/hello/hello-jon 时,他们会收到预期的 404 错误。我想将此重定向到从同一存储桶中的不同对象加载的不同页面,例如 xyz/world/world-right。这样当用户尝试点击 URL example.com/hello/hello-jon 时,他们应该被重定向到 example.com/world/world-right 页面。

我参考了几个 Amazon Docs,最后选择了这个:- https://docs.aws.amazon.com/AmazonS3/latest/userguide/how-to-page-redirect.html

我尝试了第二个示例示例 2:将对已删除文件夹的请求重定向到页面。在存储桶 xyz 的重定向规则中设置了以下基于 JSON 的规则:-

[
    {
        "Condition": {
            "KeyPrefixEquals": "hello/hello-jon/"
        },
        "Redirect": {
            "ReplaceKeyPrefixWith": "world/world-right/"
        }
    }
]

重定向确实有效,但预期结果不同。我得到的结果 URL 为:- http://S3-bucket-name.S3-bucket-region.amazonaws.com/world/world-right/

而不是https://www.example.com/world/world-right/

能否请您帮助我解决此问题或提供在这种情况下可行的替代方案?

【问题讨论】:

    标签: amazon-web-services amazon-s3 redirect http-redirect


    【解决方案1】:

    做这些改变:

    [
        {
            "Condition": {
                "KeyPrefixEquals": "hello/hello-jon/"
            },
            "Redirect": {
                "HostName": "www.example.com",
                "HttpRedirectCode": "301",
                "Protocol": "https",
                "ReplaceKeyPrefixWith": "world/world-right/"
            }
        }
    ]
    

    在文档中提到了重定向主机。

    【讨论】:

    • 您好,感谢您的回答。试过这个。它适用于重定向 hello/hello-jon/ (即带有斜杠),但没有斜杠同样失败,即 hello/hello-jon
    猜你喜欢
    • 2020-12-06
    • 2017-11-03
    • 2017-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多