.htaccess - 文件名中的 %20,浏览器会看到空格。如何避免这种情况?

标签 .htaccess url replace whitespace filenames

我已将图像导入到我自己的服务器中。许多文件名之一包含 %20,例如50128%202789%20001V%20500.jpg。但是浏览器将其视为 50128 2789 001V 500.jpg,因此不会显示该图像。

我可以使用什么解决方案来正确显示图像?

最佳答案

“%20”是空格的百分比编码,在 URL 中具有特殊含义。基本上,您不能在 URI 或 URL 中使用空格,并且必须用代码替换它们以符合规则。读取 URL 的事物(例如服务器)将其翻译回来。

不幸的是,这意味着如果您有一个包含此序列的文件名,它将被误认为是百分比编码的空格,正如您所看到的。

解决方案是对“%”也进行百分比编码。 “%”字符的百分比编码是“%25”。

在您的示例中,名称“50128%202789%20001V%20500.jpg”必须编码为“50128%25202789%2520001V%2520500.jpg”,以便这些“%”字符不会被误认为空格。

当然还有其他的东西被编码。规则在 the URI specification 中定义。 .

关于.htaccess - 文件名中的 %20,浏览器会看到空格。如何避免这种情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16950556/

相关文章:

PHP+JAVASCRIPT url 正则表达式与 GET 参数

php - 404 自定义错误页面重定向不显示丢失的文件 URL

java - 从电话号码字符串条目中删除所有特殊字符,除了仅出现在第一位的 +

.htaccess - 将 IP 重定向到域

url - angularjs $location.hash 使##,但我需要#

ios - 如何在 iOS 上的 UIScrollView 中正确替换 UIImageView 中的图像

Java字符串replaceAll正则表达式

http - 注册页面上的 SSL 重定向,其他页面上的非 SSL

PHP htaccess 将查询字符串从大写重定向到小写

.htaccess - htaccess - 禁用除 www 之外的子域