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-ошибок и помогает найти адреса, которые вы забыли перенаправить.

Все статьи

Расскажите о задаче — подберём платформу и оценим работу

Обсудить проект