Apache дает 404 для закодированных URL со специальными символами - PullRequest
1 голос
/ 05 марта 2012

У меня есть приложение, которое генерирует XML-файлы, и они могут содержать специальные символы. Моя проблема в том, что Apache не выдаст мне xml-файл, если закодирован URL со специальным символом.

Пример: Файл ABCö.xml доступен по http://host/path/ABCö.xml,, но при обращении с закодированным URL http://host/path/ABC%F6.xml apache дает мне 404.

Это параметр в httpd.conf или мне нужно что-то переписать, чтобы сделать XML-файлы доступными для обоих URL-адресов?

1 Ответ

3 голосов
/ 05 марта 2012

У вас может быть проблема с кодировкой.

Большинство (всех?) Современных браузеров используют UTF-8 при кодировании специальных символов в URL-адресах, которые пользователь вводит непосредственно в адресную строку.

Таким образом, когда вы вводите ABCö.xml скажем в Firefox, он преобразует ö в свое многобайтовое представление UTF-8, поэтому конечный результат будет

ABC%C3%B6.xml

а не однобайтовый

ABC%F6.xml

только один из них будет работать. Проверьте, какая кодировка используется в вашем имени файла.

...