Поддержка Проблемы и решения Проблема с URL сайта после переноса на другой хостинг

  • Решено max9003

    (@max9003)


    Здравия уважаемые коллеги. Хотел поинтересоваться по теме отображения URL.

    Краткая ситуация: я администрирую сайт на Вордпресс, раньше он находился на ирландском хостинге, но пришлось перенести его на украинский хостинг. Перенос прошёл нормально, но проблема в том что при открытии страниц высвечивается нечто подобное:

    Not Found

    The requested URL /о-себе/ was not found on this server.

    Я так понимаю проблема связана с кодировками. Вопрос — как мне URL преобразовать в правильные? У меня страниц сайта немного, поэтому может мне это сделать каким-то образом через базу данных вручную?

Просмотр 15 ответов — с 1 по 15 (всего 21)
  • Модератор Юрий

    (@yube)

    Посмотрите, в базе с кодировкой всё нормально? о-себе очень похоже на utf в таблицах с кодировкой cp1252/latin1

    Да, сразу после создания базы надо в phpmyadmin применить к таблицам кодировку utf-8, потом импортировать в новую базу бэкап базы с прошлого хостинга. Когда я переводил сайт с прошлого хостинга, я вначале создал базу, импортировал в нее бэкап прошлого хостинга, потом запустил установку вордпресс, указав при этом базу с импортированным бэкапом.

    • Ответ изменён 4 нед. назад пользователем  alexander70.
    Модератор Юрий

    (@yube)

    после создания базы надо в phpmyadmin применить к таблицам кодировку utf-8

    После создания базы в ней нет таблиц. Кодировку базы по умолчанию, таки да, надо ставить utf8.

    импортировал в нее бэкап прошлого хостинга, потом запустил установку вордпресс

    После импорта установка не нужна. Если параметры соединения с базой указаны верно, то WP сразу начинает работать.

    В принципе не нужна установка, просто в процессе установки идет дополнительная проверка хостинга, подходит ли версия php, mysql, уровень доступа к папкам и т.д.

    Посмотрите, в базе с кодировкой всё нормально? о-себе очень похоже на utf в таблицах с кодировкой cp1252/latin1

    Юрий всё верно, как это можно исправить?

    Да, сразу после создания базы надо в phpmyadmin применить к таблицам кодировку utf-8, потом импортировать в новую базу бэкап базы с прошлого хостинга. Когда я переводил сайт с прошлого хостинга, я вначале создал базу, импортировал в нее бэкап прошлого хостинга, потом запустил установку вордпресс, указав при этом базу с импортированным бэкапом.

    Я так понял это будет работать в случае если базы данных были в кодировке utf-8 на обоих хостингах. У меня скорей всего проблема в том, что на старом хостинге база данных была в кодировке CP1252 и как её приспособить теперь на новый хостинг?

    Модератор Юрий

    (@yube)

    как это можно исправить?

    Зависит от того, что в дампе и что получилось в базе. В худшем случае придется к каждому текстовому полю применять что-то типа такого:

    ALTER TABLE table MODIFY COLUMN title varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci;
    UPDATE table SET title = CONVERT(CONVERT(CONVERT(title USING latin1) USING binary) USING utf8);

    В Сети есть статьи, как это «автоматизировать», используя information_schema.

    Будьте готовы, что с первой попытки не получится.

    Да, кстати, экспортировали/импортировали через PMA или каким-то инструментом панели управления хостингом?

    Если прежняя база была в другой кодировке, то надо конвертировать базу, искать конвертер.

    А прежний сайт работал с кодировкой CP1252 и все было нормально?

    А прежний сайт работал с кодировкой CP1252 и все было нормально?

    Да, всё отлично работало и все страницы открывались

    В Сети есть статьи, как это «автоматизировать», используя information_schema.

    Юрий, а не могли бы вы скинуть ссылку на одну из подобных статей, а то я вообще с трудом представляю что искать..

    Если прежняя база была в другой кодировке, то надо конвертировать базу, искать конвертер.

    Автоматического конвертера нет насколько я понимаю?

    Коллеги, я сейчас внимательно прошёлся по таблицам в PHP Admin — текст во всех таблицах русский читаемый и везде стоит кодировка либо «utf8_general_ci» либо «utf8mb4_unicode_ci». Но при открытии страниц сайта пишет в браузере:

    «Not Found The requested URL /о-себе/ was not found on this server.»

    То есть я так понимаю затык всё таки при формировании УРЛов страниц. Где корень проблемы я всё таки не могу понять.. я так понимаю УРЛы страниц формируются на основе данных из БД и из таблиц берутся УРЛы в том виде в котором они там есть?

    Вот сам сайт http://vkorshunov.ru

    Можно пройтись по страницам и увидеть проблему..

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Попробуйте пересохранить настройки постоянных ссылок, чтобы создался файл .htaccess.

    Сам урл в браузере гугл хром пишется нормально: http://vkorshunov.ru/%d0%b4%d0%b8%d0%bf%d0%bb%d0%be%d0%bc%d1%8b/ , я вижу как http://vkorshunov.ru/дипломы/

    Но самой страницы у вас нет, на месте контента пишется Not Found
    The requested URL /дипломы/ was not found on this server.

    А если открыть эту страницу в режим редактирования, какой там указан адрес постоянной ссылки?

    Попробуйте сделать как посоветовал Sergey Biryukov

    Сам урл в браузере гугл хром пишется нормально: http://vkorshunov.ru/%d0%b4%d0%b8%d0%bf%d0%bb%d0%be%d0%bc%d1%8b/ , я вижу как http://vkorshunov.ru/дипломы/

    Но самой страницы у вас нет, на месте контента пишется Not Found
    The requested URL /дипломы/ was not found on this server.

    А если открыть эту страницу в режим редактирования, какой там указан адрес постоянной ссылки?

    Попробуйте сделать как посоветовал Sergey Biryukov

    А дело в том, что я не могу войти в админку, у меня там стоит плагин, который убирает вход через wp-login.php и создает другую ссылку для входа. По ней я зайти не могу. Хотя может плагин удалить через FTP и попробовать зайти по wp-login.php?

Просмотр 15 ответов — с 1 по 15 (всего 21)