2

Недавно я переехал на новый сервер после того, как старый умер. У меня там была установка 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

Любые предложения, как опровергнуть эту гипотезу и, наконец, решить проблему?

1 ответ1

1

Хорошо, я решил проблему, исправив имена файлов скриптом. Я думаю, что кодирование специальных символов было нарушено в какой-то момент, когда я копировал файлы между системами (Gentoo => Mac OS X => Debian). Не стесняйтесь использовать и редактировать мой скрипт, если у вас есть похожая проблема.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .