Apache为具有特殊字符的编码URL提供404

时间:2012-03-05 09:34:26

标签: apache utf-8 special-characters

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

实施例: 文件ABCö.xml可由http://host/path /ABCö.xml访问,但如果使用编码的URL http://host/path/ABC%F6.xml访问,则apache会给我404.

这是httpd.conf中的设置还是我需要som重写才能使两个网址都能访问xml文件?

1 个答案:

答案 0 :(得分:3)

您可能遇到编码问题。

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

因此,当您在Firefox中输入ABCö.xml时,它会将ö转换为其UTF-8多字节表示形式,因此最终结果将是

ABC%C3%B6.xml

而不是单字节

ABC%F6.xml

其中只有一个会起作用。检查文件名中使用的编码。