Блог
Почему после переноса Вордпресс ломаются ссылки
Перемещение сайта на Вордпресс с одного сервера или домена на другой часто приводит к проблемам с работоспособностью ссылок. Страницы выдают ошибки, изображения не отображаются, а меню ведут в никуда. Это вызывает закономерное раздражение у владельцев ресурсов.
Корень проблемы лежит в абсолютном характере большинства внутренних ссылок платформы. Вордпресс сохраняет полные пути к файлам и записям в базе данных. Эти пути включают старый адрес сайта или структуру каталогов на прежнем хостинге.
После переноса, когда доменное имя или расположение файлов меняется, сохраненные пути перестают соответствовать новой реальности. Браузер пытается найти ресурсы по устаревшим координатам и терпит неудачу. Результат – знакомые всем «404 Not Found» или пустые места вместо контента.
Система управления контентом не может автоматически исправить все упоминания старого адреса. Особенно это касается ссылок, вручную прописанных в текстах записей, настройках виджетов или файлах темы. Такие «жесткие» ссылки требуют отдельного внимания.
Почему после переноса WordPress ломаются ссылки
Сайт WordPress хранит пути к файлам и страницам в базе данных. При переносе на другой сервер или в новую папку физическое расположение ресурсов меняется. База данных продолжает содержать старые адреса, которые теперь указывают на несуществующие места.
Система управления WordPress генерирует ссылки динамически, используя сохранённый в настройках «Адрес WordPress» и «Адрес сайта». Если эти параметры не обновлены после перемещения, движок формирует некорректные пути. Это касается не только записей, но и медиафайлов, тем, плагинов.
Конфигурация веб-сервера (Apache .htaccess или Nginx конфиги) может не соответствовать новой структуре проекта. Правила перезаписи URL, критичные для ЧПУ, часто требуют правок при смене окружения. Ошибки в этих правилах делают постоянные ссылки нерабочими.
Некоторые плагины или темы жёстко прописывают абсолютные пути в своих настройках или коде. После миграции такие пути остаются привязанными к старой среде. Ручное изменение файлов через редактор без учёта относительных путей даёт аналогичный результат.
Кеширование на уровне сервера, браузера или плагинов сохраняет устаревшие адреса. Даже после исправления основных настроек кеш может подставлять битые ссылки, пока не будет очищен.
Некорректные настройки домена в базе данных
При переносе WordPress на новый сервер или домен адрес сайта в базе данных часто остаётся прежним. WordPress хранит полный URL сайта в таблице `wp_options` под ключами `siteurl` и `home`. Если эти значения не обновлены, система продолжит формировать ссылки, используя старый адрес.
Проверьте текущие настройки в базе данных. Используйте phpMyAdmin или аналогичный инструмент. Найдите записи `siteurl` и `home` в таблице `wp_options`. Убедитесь, что там указан корректный домен с правильным протоколом (http/https).
Исправьте значения напрямую в SQL, если они неверны. Выполните запрос вида:
UPDATE `wp_options` SET `option_value` = ‘https://новый-домен.ru’ WHERE `option_name` IN (‘siteurl’, ‘home’);
Не меняйте другие записи в этой таблице случайно. Ошибки в `siteurl` или `home` приводят к битым ссылкам на главной странице, в меню, медиафайлах и внутренних путях.
После правки очистите кеш WordPress и браузера. Проверьте отображение ссылок на сайте. Если проблема осталась, ищите жёстко прописанные старые адреса в контенте или настройках темы.
Отсутствие обновления путей в таблицах wp_posts и wp_options
При переносе WordPress на новый сервер или домен пути к файлам и страницам внутри базы данных часто сохраняют старые значения. Это касается двух ключевых таблиц: wp_posts и wp_options.
В таблице wp_posts хранится контент страниц, записей и медиафайлов. Поля guid, post_content часто содержат абсолютные URL. Если при переносе эти URL не изменить, изображения не отобразятся, а внутренние ссылки будут вести на старый адрес.
Таблица wp_options включает критичные настройки. Опции siteurl и home определяют базовый адрес сайта. Если они указывают на старое расположение, стили и скрипты перестанут загружаться. Плагины и темы также сохраняют пути в своих опциях.
Автоматические инструменты переноса иногда пропускают эти данные. Ручное изменение адреса в настройках WordPress не всегда обновляет существующий контент в базе. Требуется прямая замена старых путей на новые во всех затронутых полях.
Для исправления используйте специальные плагины поиска и замены или выполняйте SQL-запросы к базе данных. Всегда создавайте резервную копию перед внесением изменений.
Проблемы с конфигурацией сервера или файла .htaccess
Некорректная настройка веб-сервера или файла .htaccess часто вызывает ошибки в ссылках после переноса WordPress. Эти файлы управляют обработкой URL и перенаправлениями.
Основные причины:
- Отсутствующий или повреждённый файл .htaccess в корне сайта
- Неправильные правила mod_rewrite для постоянных ссылок
- Конфликт с кэширующими модулями сервера (например, Varnish)
- Ошибочные настройки виртуального хоста в Apache/Nginx
- Блокировка директивы FollowSymLinks в конфигурации сервера
Как проверить:
- Убедитесь в наличии файла .htaccess с правами на чтение
- Проверьте актуальность базовых правил WordPress:
- Директива RewriteBase должна содержать правильный путь
- Блок # BEGIN WordPress должен присутствовать
- Отключите кэш сервера для тестирования
- Сравните конфигурацию виртуального хоста с рабочим окружением
Решение для стандартных установок:
- Удалите текущий файл .htaccess
- В админ-панели WordPress перейдите в «Настройки → Постоянные ссылки»
- Сохраните изменения без правок – система сгенерирует новый корректный файл
Для серверов Nginx:
- Проверьте конфигурацию сайта в /etc/nginx/sites-available/
- Убедитесь в наличии обработки PHP через FastCGI
- Включите поддержку ЧПУ через try_files:
location / { try_files $uri $uri/ /index.php?$args; }