Недавно я переехал на новый сервер после того, как старый умер. У меня там была установка WordPress, работающая на Apache2 и Gentoo Linux. При переезде я решил использовать nginx и Debian . Я вернул свой WordPress на работу, и все было бы хорошо, если бы не один маленький ...
проблема
Изображения, которые содержат специальные символы в именах файлов, не загружаются, я получаю 404 Not Found. Например, при запросе
http://my_site/wp-content/uploads/2013/05/Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
WordPress отвечает
You tried going to http://my_site/wp-content/uploads/2013/05/Zaj%C4%99cia-dla-doros%C5%82ych-z-bollywood-dance.jpg, and it doesn't exist.
Я немного поиграл с терминалом и обнаружил, что имена файлов изображений на сервере немного отличаются от тех, которые запрашивает WordPress. Несмотря на то, что они выглядят одинаково, специальные последовательности символов кодируются по-разному. Например, когда я копирую имя файла Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
из терминала, оно кодируется как Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
. С другой стороны, WordPress ищет файл Zajęcia-dla-dorosłych-z-bollywood-dance.jpg
который, конечно, не существует.
Обе системы (старый Gentoo и текущий Debian) настроены на использование языкового стандарта на основе UTF-8.
Как решить?
Я думаю о трех возможных причинах:
- Debian хранит специальные символы в именах файлов иначе, чем Gentoo
- мой новый mysql хранит специальные символы не так, как старый
- nginx обрабатывает специальные символы иначе, чем Apache
Любые предложения, как опровергнуть эту гипотезу и, наконец, решить проблему?