Как исправить ошибку 404 в постах WordPress?
Переношу сайт с одного домена на другой. Изменил домен в таблице wp_options, а также прогнал плагином Better Search Replace. Главная открывается, админка открывается, картинки открываются, а посты и страницы выдают 404. Что я делаю не так?
Дополнительно:
не прописан rewrite?
Что я делаю не так?
Всё
И вот
Настройки - общие - адрес верный ?
Возможно, отсутствует /.htaccess (потерялся при переносе). Восстановить можно через настройки постоянных ссылок.
Либо сайт обслуживает не Апач.
- Спасибо, не знал, что с nginx такая проблема
- felengir, Увы, .htaccess понимает (без бубна) только Апач (и то если AllowOverride), другим серверам для работы ЧПУ нужны другие, их собственные конфигурационные файлы.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос

Если после переноса домена главная и админка открываются, а записи и страницы дают 404, почти всегда проблема в rewrite rules: не пересохранены постоянные ссылки, неправильный
.htaccessдля Apache или не настроенtry_filesдля Nginx.Первое действие в WordPress: зайдите в “Настройки → Постоянные ссылки” и просто нажмите “Сохранить”. Это пересоберёт rewrite rules. Часто этого достаточно.
Для Apache в корне должен быть стандартный блок:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Если сайт на Nginx, одного
.htaccessнедостаточно. В конфиге server/location должно быть примерно:location / { try_files $uri $uri/ /index.php?$args; }
Если этого нет, Nginx ищет физический файл по URL записи и получает 404.
Также проверьте, что в базе заменены оба адреса:
homeиsiteurl. Better Search Replace должен пройти по сериализованным данным, но если меняли толькоwp_options, часть ссылок и настроек могла остаться старой.Если используется кэш/редирект/SEO-плагин, очистите кэш и проверьте редиректы. Иногда после переноса остаются правила старого домена или старой директории.
Диагностика: временно поставьте структуру постоянных ссылок “Простая”. Если
?p=123открывает запись, с контентом всё нормально, проблема именно в ЧПУ/rewrite.Итог: пересохранить permalinks, проверить
.htaccessили Nginxtry_files, очистить кэш и убедиться, что домен заменён корректно. Контент при такой ошибке обычно не потерян.