Редирект 50 000 страниц, как правильно сделать?

p2rcoder

Постоялец
Регистрация
16 Июл 2012
Сообщения
315
Реакции
154
Переезд на новый сайт. На старом в урлах категорий товаров, а так же самих товаров, добавлялись айдишники, на новом их не будет. Товаров примерно 50 000, т.е. прописывать через .htaccess не вариант, так как пишут что могут быть проблемы с производительностью, что на каждый запрос апач будет ковырять все 50 000 правил редиректов. Как быть? Может кто поможет составить правильно правило на все ссылки в htaccess за деньги? Логика какая-то в изменениях будет, например:

категория
Для просмотра ссылки Войди или Зарегистрируйсяkholodilniki на новом сайте будет Для просмотра ссылки Войди или Зарегистрируйсяkholodilniki

товар
Для просмотра ссылки Войди или Зарегистрируйсяkholodilniki/86930-kholodilniki-samsung-rb-33-j3420bc-12398226.html на новом сайте будет Для просмотра ссылки Войди или Зарегистрируйсяkholodilniki/kholodilniki-samsung-rb-33-j3420bc/
 
Последнее редактирование:
храни не в htaccess, а в базе данных - два сопоставленных url-а. ищи первый отдавай в php на редирект второй.
 
храни не в htaccess, а в базе данных - два сопоставленных url-а. ищи первый отдавай в php на редирект второй.

спасибо, может кто знает готовые модули/решения для битрикса, которые такое умеют делать (при этом вы пробовали, потому что на маркетплейсе я модули вижу, но отзывов у них нет)?
 
Последнее редактирование:
может кто знает готовые модули/решения для битрикса, которые такое умеют делать (при этом вы пробовали, потому что на маркетплейсе я модули вижу, но отзывов у них нет)
вы часто пишете отзывы к купленным продуктам? обычно работает - ну и хорошо, а вот если не работает - сразу хочется пойти и написать гневный отзыв.
не просто же так они в магазине - модерацию проходят. плюс скриншоты есть, а это уже нужно было заморочиться.
думаю можно у них даже демку запросить побаловаться.

кстати, еще один момент. если у вас все url новые точь в точь как старые но только без ID-шников (из престашопа, насколько я догадываюсь). можно тупо написать регулярку, которая будет из запросов определять цифробуквы до дефиса и вырубать их вместе с дефисом, темсамым получая новую строку для редиректа.
но делать это нужно до срабатывания битриксового SEF
 
Последнее редактирование модератором:
кстати, еще один момент. если у вас все url новые точь в точь как старые но только без ID-шников (из престашопа, насколько я догадываюсь). можно тупо написать регулярку, которая будет из запросов определять цифробуквы до дефиса и вырубать их вместе с дефисом, темсамым получая новую строку для редиректа.
но делать это нужно до срабатывания битриксового SEF

ну вот я и спрашивал в вопросе про написать регулярку за деньги
 
ну вот я и спрашивал в вопросе про написать регулярку за деньги
тогда ты не там ищешь. тебе нужен тот кто конкретно напишет регулярку с условиями if else для htaccess.
врядли в разделе сео кто-то это умеет. не каждый Php-шник умеет в htaccess регулярки
 
тогда ты не там ищешь. тебе нужен тот кто конкретно напишет регулярку с условиями if else для htaccess.
врядли в разделе сео кто-то это умеет. не каждый Php-шник умеет в htaccess регулярки

ну не знаю, на нулледе часто встречаются продвинутые юзеры )
 
Была такая же задача только для 8 тыс товаров, хороший сервер даже не замечает что у него 8 тыс строк на редиректе. Но изначально расматривали этот модуль Для просмотра ссылки Войди или Зарегистрируйся
 
Интересный вопрос и возможный ответ

Код:
RewriteEngine on
RewriteRule ([0-9]+)-(.*) https://newsite.ru/catalog/$2 [R=301,L]
RewriteRule ([0-9]+)-(.+)-(-?[0-9]+.html) https://newsite.ru/catalog/$2 [R=301,L]
 
Интересный вопрос и возможный ответ
Код:
RewriteEngine on
RewriteRule ([0-9]+)-(.*) https://newsite.ru/catalog/$2 [R=301,L]
RewriteRule ([0-9]+)-(.+)-(-?[0-9]+.html) https://newsite.ru/catalog/$2 [R=301,L]
Правила RewriteRule проверяютя в том порядке, в котором они записаны в файле. Запрос поочерёдно сравнивается с шаблонами в RerwriteRule и при первом же совпадении правило исполняется.
(.*) совпадает с любой строкой, так что первое правило будет срабатывать и на "kholodilniki/86930-kholodilniki-samsung-rb-33-j3420bc-12398226.html"
Ну и на новом сайте там слеш в конце и два раза kholodilniki "/catalog/kholodilniki/kholodilniki-samsung-rb-33-j3420bc/"
Код:
RewriteRule ^\d+-([^/]+)$ https://newsite.ru/catalog/$1 [R=301,L]
RewriteRule ^([^/]+/)\d+-([^/]+)-\d+\.html$ https://newsite.ru/catalog/$1$2/ [R=301,L]
 
Назад
Сверху