【问题标题】:Apache gives 404 for encoded urls with special charactersApache 为带有特殊字符的编码 url 提供 404
【发布时间】:2012-03-22 18:58:30
【问题描述】:

我有一个生成 xml 文件的应用程序,它们可能包含特殊字符。我的问题是,如果带有特殊字符的 url 被编码,Apache 不会给我 xml 文件。

示例: 文件 ABCö.xml 可通过 http://host/path/ABCö.xml 访问,但如果使用编码的 url http://host/path/ABC%F6.xml 访问,apache 会给我一个 404。

这是 httpd.conf 中的设置还是我需要重写 som 以使两个 url 都可以访问 xml 文件?

【问题讨论】:

  • 您确定文件名中的特殊字符使用的编码与您在 URL 中的编码相同吗?

标签: apache utf-8 special-characters


【解决方案1】:

您可能遇到编码问题。

大多数(全部?)现代浏览器在对用户直接输入地址栏的 URL 中的特殊字符进行编码时使用 UTF-8。

所以当你在 Firefox 中输入ABCö.xmlsay 时,它会将ö 转换成它的 UTF-8 多字节表示,所以最终结果将是

ABC%C3%B6.xml

而不是单字节

ABC%F6.xml

其中只有一个可以工作。检查您的文件名中使用了哪种编码。

【讨论】:

  • 你是对的。似乎试图访问我的 xml 文件的第 3 方应用程序在编码 url 时使用 latin1 (ISO-8859-1)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
  • 2013-06-03
  • 2014-09-17
  • 1970-01-01
相关资源
最近更新 更多