通过 Amazon Cloudfront 在静态网站上使用路径参数

Using path parameters on static website through Amazon Cloudfront

我在 S3 和 Cloudfront 上有一个静态网站。我想使用路径参数而不是查询参数将值传递给静态站点 javascript。

例如

mysupersite.com/123

而不是

mysupersite.com?id=123

如何将 Cloudfront 配置为对任何 ID 使用相同的静态文件?

您可以通过为 Origin Request 事件添加 Lambda@Edge function 来实现。

通过使用 Lambda@Edge 函数,您可以解析请求并从路径中获取 ID,并将其作为查询字符串属性添加到将转发到您的来源的请求中。

通过这样做,浏览器请求看起来像

example.com/123

但是转发到S3的请求看起来像

example.com?id=123

如果您看一下 these examples,它应该可以帮助您了解如何使用它。