Как массово добавить 301 редиректы?
Здравствуйте!
Был обновлен старый сайт. Клиент решил добавить вложенность, которой ранее не было. Т.е. ссылки на все статьи теперь имеют вид site.ru/articles/business/new-cryptomarkets.html, когда ранее был адрес вида site.ru/new-cryptomarkets.html
Статей много, категории разные. Как можно удобно прописать все 301 редиректы? Добавлять кучу записей в htaccess как-то слишком муторно.
Был обновлен старый сайт. Клиент решил добавить вложенность, которой ранее не было. Т.е. ссылки на все статьи теперь имеют вид site.ru/articles/business/new-cryptomarkets.html, когда ранее был адрес вида site.ru/new-cryptomarkets.html
Статей много, категории разные. Как можно удобно прописать все 301 редиректы? Добавлять кучу записей в htaccess как-то слишком муторно.
Комментарии: 6
autoRedirector
Спасибо! Но видимо я не понял логику. Пишет, что он сам создаст правила при изменении урлов. Вот я включил в системных настройках «Использование вложенных», нажал «Обновить URI-ссылки» в меню Управление, но правила не создались и 301 не происходит при переходе на старые ссылки.
Попробую, спасибо. autoRedirector пока не помог. Но все же получается нужно будет условным Console вытащить все старые ссылки, сопоставить им новые и импортировать в easyRedirects?
Да, конечно, само собой ничего магически не произойдет.
решал эту проблему следующим образом
- установил autoRedirector
- далее через phpMyAdmin
- экспортировал со старого сайта modx_site_content
- залил в базу к новому с именем modx_site_content_old
- сравнил две базы. если у одинаковых id ресурсов значения uri не совпадают, то добавил новые редиректы в базу modx_ar_rules
- удалил дубликаты записей в modx_ar_rules
- удалил modx_site_content_old
INSERT INTO `modx_ar_rules` (`res_id`, `context_key`, `uri`)
SELECT
sc.id AS res_id,
'web' AS context_key,
sc2.uri AS uri
FROM
modx_site_content sc
LEFT JOIN modx_site_content_old sc2 ON sc.id = sc2.id
WHERE
sc.uri <> sc2.uri; -- uri не совпадают
DELETE FROM `modx_ar_rules`
WHERE id NOT IN (
SELECT `min_id`
FROM (
SELECT MIN(id) AS min_id
FROM modx_ar_rules
GROUP BY `res_id`, `context_key`, `uri`
) AS keep
);все четенько на 7К ресурсов в несколько кликов
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.