Сегодня вечером столкнулся с проблемой. После переноса и ре дизайна моими коллегами сайта на 1C Битрикс(который я мягко скажем не недолюбливаю) понадобилось сделать 301й редирект со старых адресов основных каталогов на новые. Пробовали и Redirect 301 /category http://web-site.ru/new-category и permanent и RewriteRule. Хоть это вопрос к правилам работы модуля apache mod_rewrite но Битрикс(его настроенный .htaccess) не хотел обрабатывать адреса с указанными GET параметрами. То есть урлы с query_string - не переадресовывает, а без - работают. Ссылку вида "/catalog/goods/list.php?SECTION_ID=761" - ни в какую не хотел перекидывать на новый адрес.
Пришлось импровизировать ;-) В прочем такая импровизация у меня не впервые, за 2 года работы в СЕО-компании, мы с моими коллегами: сео-оптимизатором и программистом перекопали десятки самописных движков расположенных на разных серверах и написанных на разных фреймворках. Так что вот вам хитрые костыли для редиректа на PHP хоть для 1C Битрикса хоть для сайта на MyNameFramework.
Создаем файл seo-redirect.php и в нем пишем следующий код:
Далее подключаем этот файл в шапке основного файла отвечающего за работу движка. В 1C Bitrix с которым возникла проблема я подключил данный файл данным образом: в папке /bitrix/header.php добавил в самом верху документа строку:
И указал список список адресов нуждающихся в редиректе. Мы просто сверяем текущий URI с адресом нуждающимся в переадресации и если значения совпадают то с помощью header делаем дело!
В интернете так и не нашел решение данной проблемы на Битриксе, а тема поднимается не на одном форуме. Кто то советует купить модуль для движка за 560 гривен, кто то советует модуль короткие ссылки то же не бесплатный. А мы с вами работаем головой ;)
Ксения
Спасибо! Единственный способ,который реально сработал!
Анатолий
А у меня один раз сработал. Потом сайт стал недоступен. www.olatola.ru Пришлось откатываться. Куда копать. Спасибо.