首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Amazon Cloudfront中排除URL?

如何在Amazon Cloudfront中排除URL?
EN

Stack Overflow用户
提问于 2015-12-22 04:59:35
回答 1查看 10.9K关注 0票数 3

我计划使用Amazon Cloudfront CDN,但有一个URL需要排除。它是一个动态URL (包含一个查询字符串)。

例如,我想存储/缓存我的站点上的每个页面,除了:

代码语言:javascript
复制
http://www.mypage.com/do-not-cache/?query1=true&query2=5

编辑-这是无效的‘对象’所做的吗?如果有,请举个例子。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-22 21:29:47

冒着帮助您解决错误问题的风险,我应该指出,如果您将CloudFront配置为将查询字符串转发到原始服务器,那么响应将针对整个URI进行缓存--即针对路径+查询字符串--而不是针对路径,因此……

代码语言:javascript
复制
/dynamic-page?r=1
/dynamic-page?r=2
/dynamic-page?r=2&foo=bar

就CloudFront而言,...would是三个不同的“页面”。它永远不会处理来自缓存的请求,除非查询字符串是相同的。

如果您将CloudFront配置为将查询字符串转发到源,则CloudFront将在缓存对象时包含URL的查询字符串部分。..。

这是正确的,即使您的源总是返回相同的内容,而不考虑查询字符串。

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/QueryStringParameters.html

因此,没有必要显式地故意避免在此页面上进行缓存。如果将CloudFront配置为转发查询字符串,则正确的行为应该是自动的。

当然,如果您的源站在响应头中设置了Cache-Control: private, no-cache, no-store或类似内容,则CloudFront和浏览器都不应缓存响应。

但是,如果您坚持将CloudFront显式配置为不缓存此页面,请使用与/do-not-cache*匹配的path pattern创建一个新的缓存行为,并将CloudFront配置为forward all of the request headers to the origin,这将禁用与该路径模式匹配的页面请求的缓存。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34404223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档