2012-03-05 48 views
1

我有一個生成xml文件的應用程序,它們可能包含特殊字符。我的問題是,如果具有特殊字符的URL被編碼,Apache將不會給我這個xml文件。Apache爲特定字符的編碼網址提供404

例如: 文件ABCö.xml是http://host/path/ABCö.xml訪問,但如果與編碼的URL訪問http://host/path/ABC%F6.xml阿帕奇給了我一個404

是在httpd.conf這樣的設置或者我需要索姆重寫以使這兩個url可訪問xml文件?

+0

您確定文件名中的特殊字符與您在URL中使用的是相同的編碼嗎? – 2012-03-05 09:44:36

回答

3

您可能有編碼問題。

大多數(所有?)現代瀏覽器在將用戶直接輸入到地址欄中的URL中的特殊字符編碼時使用UTF-8。

所以,當你進入ABCö.xml說,在Firefox中,它會轉變ö到它的UTF-8多字節表示,所以最終的結果將是

ABC%C3%B6.xml 

,而不是單字節

ABC%F6.xml 

只有其中一個會工作。檢查文件名中使用哪種編碼。

+0

你說得對。似乎嘗試訪問我的XML文件的第三方應用程序在編碼url時使用latin1(ISO-8859-1) – jon 2012-03-05 10:06:19