【以下的问题经过翻译处理】 在我的CloudFront中,我有一个路径模式为/no/app*的行为,但是我遇到了一个奇怪的情况。
/no/app*
当URL为/no/.%2fapp时,它会被上面的模式匹配。
/no/.%2fapp
说实话,我不知道为什么客户会使用这个URL,但它等同于/no/./app,浏览器会自动将其规范化为/no/app,但是如果未编码,则浏览器会将其原样传递。 为什么会发生这种情况吗?
/no/./app
/no/app
【以下的回答经过翻译处理】 我从AWS Support那里得到了答案:
1.2.1节 - 转录
URL编码的设计是为了确保URI中使用的所有字符都在US-ASCII范围内。
2.4节 - 编码或解码的时机
当URI被解索引时,它需要被解码。
5.2.4节 - 删除点段
如果输入缓冲区以“/./”或“/。”为前缀,其中“.”是完整的路径段,则将该前缀替换为输入缓冲区中的“/”。
即使URI已经规范化匹配,Lambda@Edge也会获取原始请求URI。
您未登录。 登录 发布回答。
一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。