До недавнего времени каждая статья на одном из моих сайтов добавлялась в две рубрики – тематическую и "номер" (журнала). В результате "журнальных" рубрик развелось очень много (уже больше 500) и разбираться в них стало трудновато (не говоря уже о быстродействии админки при работе с этим списком).
Поскольку нужды в этих рубриках больше нет, а старую структуру "номеров" сохранить хочется, я решил создать отдельную рубрику, в которой каждый пост будет "номером".
Фактически каждая старая рубрика вида XX-200X (номер-год) будет заменена соответствующей записью.
Но есть одна проблема. Сейчас на номера ведут ссылки рубрик такого вида (используются ЧПУ):
[quote]site.ru/02-2009
(сайт/рубрика)[/quote]
В новой же структуре ссылки будут иметь вид:
[quote]site.ru/archive/02-2009.html
(сайт/рубрика-архив/пост.html)[/quote]
Поскольку ссылок старого образца очень много (на сайта и внешних), хотелось бы организовать автоматический редирект. А вот как это сделать – пока придумать не могут. Конечно, можно тупо создать в корне хоста кучу папок с .htaccess, но это изврат. Подозреваю, что можно как-то автоматизировать это дело. Скажем, как-то редиректить из шаблон-файла 404.php, если для адреса несуществующей страницы известна замена (массив замен готов набить руками – это меньшее из зол). Но вот как конкретно это сделать – придумать не могу (опыта работы с PHP маловато). Может кто-нибудь из знатоков даст дельный совет? 🙂
Разобрался сам 🙂 Если вдруг кому пригодится, пользуйтесь:
В 404.php в самом начале (это важно, поскольку header нужно успеть отправить первым) вставляем:
Если этот код отработает, пользователя (и поисковик) перенаправит на новую страницу, если не сработает (замена не найдена) – выведется обычная 404-я страница.