Редирект со старых адресов на новые после смены постоянных ссылок

Недавно пришлось менять настройки постоянных ссылок для одного старого сайта клиента. 

В общем, было вот так:

Редирект со старых адресов на новые после смены постоянных ссылок

а стало так:

Редирект со старых адресов на новые после смены постоянных ссылок

В итоге получилось, что необходимо было настроить около сотни 301-ых редиректов со старых адресов записей вида: http://site.ru/%postname%/ на новые вида: http://site/%category%/%postname%/. 

Через правила .htaccess наверное такую задачу автоматизировано не решить, прописывать больше 100-и редиректов очень не хотелось и тогда было принято решение обработать 404-ую ошибку WordPress’а, когда он не может найти страницу записи с адресом вида: http://site.ru/%postname%/ – искать запись в WordPress с ярлыком (slug’ом) равным этому %postname% и если она есть, то делать 301ый редирект на неё. 

Банальный код, спасший меня от большой рутины:

Если возникнет вопрос: а собственно зачем всё это?  А потому что, сайт старый, клиент так вот захотел поменять адреса, а Поисковые системы же уже давно проиндексировали посты (записи) по старым URL-адресам, вот что бы они их не потеряли – нам нужны были 301ые редиректы.

ПОДЕЛИТЬСЯ

Программист, преподаватель, консультант.
Активный фрилансер и тех. директор студии AVGroup.
Фанат WordPress'а, а также всего - что даёт скорость в веб-разработке.

One Comment

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая на кнопку Отправить комментарий, Вы подтверждаете, что прочли Политику конфиденциальности и принимаете её.