【问题标题】:HTTPS: will not display images with #, " , or % in nameHTTPS:不会显示名称中带有 #、" 或 % 的图像
【发布时间】:2012-09-05 19:30:02
【问题描述】:

我有一个可以显示 https: 图片的网站。但是,如果图像具有特殊字符,例如 #、" 或 %,则图像将不会显示。我的 url 都是相对的,以便同时容纳 http 和 https。它们都完美地显示在 http 上。 示例 URL:/images/misc/1_4-20x3_4"-hex-pl_s.jpg。 使用 Apache 服务器。使用 Progress Open Edge 进行编程。

任何帮助将不胜感激!

【问题讨论】:

  • Apache的访问日志里写了什么?
  • 日志中没有任何内容。只是一个 404 错误。
  • 你能引用一些关于 HTTP 和 HTTPS 的行吗?他们真的平等吗?
  • 2 行用于 2 个不同的图像 https:website/images/misc/1_4-20x3_4%22-hex-pl_s.jpg http:website/images/misc/1_4-20x3_4%22-hex-pl_s .jpg https:website/images/misc/%2310-lock-ext_tooth-pl_s.jpg http:website/images/misc/%2310-lock-ext_tooth-pl_s.jpg

标签: image


【解决方案1】:

#% 是 URL 中的保留字符。 # 用于锚点,% 用于编码。

尝试将# 替换为%23,将% 替换为%25

【讨论】:

  • 如果我查看图像信息,它会显示:sitename/images/misc/1_4-20x3_4%22-hex-pl_s.jpg。保留字符肯定会被替换。 (%22 是单引号。)但是找不到文件。
  • 我已经尝试过托管同名文件,它似乎对我来说工作正常adamish.com/1_4-20x3_4%22-hex-pl_s.jpg
  • 这就是我如此困惑的原因。它应该工作。服务器不能正确解密吗?只要没有保留字符,它就会从同一个文件夹中拉出其他图像。
【解决方案2】:

这是因为 URI 转义。

当您的文件名包含 #、" 或 %,例如 file#1%2".jpg,您应该使用类似

<img src="file%231%252%22.jpg">

查看本站:http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

他们甚至有一个(手动)转换器,但你应该明白这一点......

【讨论】:

  • 谢谢。感谢您的帮助。
猜你喜欢
  • 2021-01-26
  • 2013-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
相关资源
最近更新 更多