无法访问名称中包含 URL 编码字符的静态文件

Can't access static files with a URL-encoding characters in the names

在我的 CDN 上,我有一些旧文件,其名称是使用 rawurlencode 函数创建的。例如。其中一个文件具有此名称:

猫%20presentation.pdf

现在,当我尝试读取此文件时,出现 "File not found" 错误:

GET cdn.example.com/documents/Cat%20presentation.pdf

我认为这是因为名称中编码的 space 字符 - %20。对于浏览器(和 CDN),我要求的是:

猫presentation.pdf

而“%20”部分实际上在文件名中。

有什么方法可以解决这个问题并访问该文件吗?

您需要URL-encode将“%”字符转换为“%25”:

GET cdn.example.com/documents/Cat%2520presentation.pdf

但如果我是你,我只会修改他们的文件名。