301-редирект записей WordPress при смене структуры ссылок
Готовые правила .htaccess для 301-редиректа записей WordPress со ссылок вида /год/месяц/запись/ на короткие адреса без потери позиций в поиске.
Если вы сменили формат постоянных ссылок WordPress — например, с /2015/02/zapis/ на /zapis/ — старые адреса нужно перенаправить на новые кодом 301. Так поисковики перенесут позиции на новые страницы, а посетители по старым ссылкам не увидят ошибку 404.
Правила для .htaccess
Добавьте блок перед стандартными правилами WordPress:
<IfModule mod_rewrite.c>
RewriteEngine On
# /год/месяц/день/запись/ → /запись/
RewriteRule ^[0-9]{4}/[0-9]{2}/[0-9]{2}/(.+)$ https://site.ru/$1 [L,R=301]
# /год/месяц/запись/ → /запись/
RewriteRule ^[0-9]{4}/[0-9]{2}/(.+)$ https://site.ru/$1 [L,R=301]
</IfModule>
Правило с днём должно стоять первым, иначе адреса с днём попадут под правило с месяцем. Замените site.ru на свой домен, а https — на http, если сертификата нет.
Проверка
curl -I https://site.ru/2015/02/zapis/
В ответе должны быть 301 Moved Permanently и заголовок Location с новым адресом.
Без правки .htaccess
Те же редиректы можно настроить плагином Redirection: он ведёт журнал 404-ошибок и помогает найти адреса, которые вы забыли перенаправить.