Множественный редирект

Здравствуйте уважаемые ЛС-овцы.

Вчера потребовалось мне сделать 301 редирект на чуть более чем 5тис.страниц ЛС-а (из одного ИД на другой). В моем случае это было избавление от дублей статей которые были созданы на заре переноса сайта на ЛС.

Естественно что забивать ручками в
$config['router']['rewrite'] = array();

5тис. строчек както не горел желанием.
Поєтому быстро был состряпан плагинчик (подсматривая niceurl) который реализует 301 переадресацию выбирая старый и новый ид из таблицы.

Возможно есть и более «лаконичное» решение этой проблемы но пока я его не нашел и если вдруг Вы тоже не сможете найти его то вот плагин:
bitbucket.org/1099511627776/ls_multiredir
все что требуется это заполнить таблицу prefix_dup данными old_id, new_id где old_id — ид старой статьи new_id = ИД новой статьи

7 комментариев

avatar
Мы подобную задачу просто возложили на http сервер. Т.е. сгенерировали текстовый файл с директивой Redirect 301 и воткнули его в .htaccess апача. Для nginx аналогичную штуку можно сделать, просто синтаксис другой. На мой взгляд, http сервер справляется с этой работой намного эффективнее.
avatar
НЕ буду спорить. но 5тыщ строк в конфиг апача?
avatar
А в чем проблема? выкинуть редеркты в отдельный файл и директивой Include в основной .htaccess. Или вы думаете что 5000 строк для апача это проблема? :)
avatar
Поверю Вам на слово, а если представиться возможность то поекспериментирую
avatar
Я на всякий случай проверил, как у нас сделано. На самом деле у нас просто воткнуто 400 таких редиректов в .htaccess напрямую. Не очень красиво, но работает прекрасно. Единственно, что я не уверен на 100% работает ли в .htaccess Include (возможно, тут я наврал). Но в каком нить vhost.conf — точно работает. Надо бы наверное привести в порядок, но лень :)
avatar
Тут вопрос баланса — где быстрее N таких правил обработать, в Апаче или в PHP? Скорее всего, для каждого сетапа ответ будет своим. Желательно иметь оба варианта под рукой.
avatar
Ну… с моё точки зрения любой HTTP сервер должен справляться с такой работой лучше скриптов более высокого уровня. Просто в силу своей природы.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.