Как изменить кодирование URL ссылок сайта?

Всем здравствуйте!
Перенес сайт на wordpress на другой хостинг. Перенес домен, залил дамп базы, скопировал файлы, поправил wp-config.php. Сайт поднялся без проблем.
В wordpress был установлен плагин Cyr To Lat, соответственно все файлы в uploads поименованы латиницей. Однако есть очень много файлов с символом "№". На предыдущем хостинге URL таких файлов кодировался в ANSI (т.е. из отображаемой ссылки вида "*/dokument№1.pdf" символ "№" преобразовывался в "%B9" и получалась ссылка вида "*/dokument%B91.pdf"). На новом хостинге URL преобразуется в UTF-8, где символ "№" преобразуется в %E2%84%96 и ссылка получается вида "*/dokument%E2%84%961.pdf".
Все ссылки на файлы с символом № в URL возвращают 404.
Если в ссылке руками поправить № на %B9 - документ скачается.
База данных на старом хостинге в UTF-8, на новом тоже. Не пониманию в каком месте указывается кодировка URL.
Подскажите как победить этот "№"?
  • Вопрос задан
  • 301 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
%B9 - это код символа № в кодировке Windows-1251.
Похоже, что имена файлов на диске у вас сохранены именно в ней. Надо перекодировать имена в UTF-8.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
Не возьмусь утверждать со 100%-й уверенностью в вашем случае, но проблемы со ссылками на файлы, например, темы могут возникать при неправильном переносе.

Современный вордпресс уже просто так между хостами лучше не таскать. Рекомендуют плагины наподобие Duplicator и WP All-in-one Migration. Они корректно работают с сериализованными данными в базе, что позволяет избежать ошибок в т.ч. с путями.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы