
Я перенес свой сайт с одного сервера на другой и столкнулся с проблемой кириллических имен файлов. Некоторые кириллические URL в WordPress работают нормально, а некоторые теперь сломаны. На предыдущем сервере все было нормально.
Вот как это выглядит: в библиотеке изображений WordPress я вижу сломанное изображение с URL: /wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(версия в кодировке URL: /wp-content/uploads/2013/11/%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B9%D1%81%D0%BA%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D1%80%D1%8B.jpg
)
Я перехожу по этому URL-адресу и вижу ошибку 404.
Затем я захожу на FTP, копирую оттуда имя файла ( олимпийские-новогодние-шары.jpg
) и перехожу по URL/wp-content/uploads/2013/11/олимпийские-новогодние-шары.jpg
(URL-кодированная версия: /wp-content/uploads/2013/11/%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B8%CC%86%D1%81%D0%BA%D0%B8%D0%B5-%D0%BD%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE%D0%B4%D0%BD%D0%B8%D0%B5-%D1%88%D0%B0%D1%80%D1%8B.jpg
)
Теперь это работает!
Снова:
олимпийские-новогодние-шары.jpg
- сломанныйолимпийские-новогодние-шары.jpg
- работает.
Выглядит абсолютно так же. Скопируйте и вставьте URL выше, чтобы проверить!
Если я беру URL с рабочим именем файла (скопированным с FTP или SSH) и заменяю кириллическое имя файла с клавиатуры побуквенно, то все идет нормально (200 OK), пока я не изменю й
(скопированное с FTP) на й
- набранное с клавиатуры/скопированное из WordPress.
Это просто сносит мне крышу! Одна и та же буква работает в одном случае и нет в другом. И почему й
не другая кириллическая буква, например ш
или д
? Подстановка этих букв (в имени файла, скопированном с FTP) с клавиатуры не приводит к ошибке 404.
Если присмотреться, то версии, закодированные в URL, не совсем одинаковы:
%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B8%CC%86%...
%D0%BE%D0%BB%D0%B8%D0%BC%D0%BF%D0%B8%D0%B9%D1%81%...
Но почему и как я могу на это повлиять?