我在 APIGateway 后面的 Lambda 函数上有一个 Express 应用程序。我可以访问网站和 https://example.com.com/robots.txt 。当我将 Cloudfront 分发放在 API 网关前面时,我仍然可以访问网站但不能访问 robots.txt 文件:https://example.com/robots.txt 在将 Cloudfront 与 API 网关结合使用时,如何使此内容类型可发现?
到目前为止,除了我在 Cloudfront 分发中的默认行为外,我还为
/*.txt
创建了一个带有响应标头策略的行为并将其附加到我的分发中。但是它仍然不允许我访问网站上的 robots.txt 文件。
/*.txt
的行为
Content-Type: text/plain
的响应标题策略
分配的行为
这对我有用。
使用 API 网关端点创建一个 Origin,查看下面的屏幕截图。
和行为
/*.txt
Redirect HTTP to HTTPS
GET, HEAD
通过以上配置,我能够成功访问
robots.txt
,这是从Lambda获取的。
如果您仍然遇到问题,那应该是 API Gateway 或 Lambda 的问题,绝对不是 Cloudfront 的问题。