E blog

Новостной блог, раскрутка, заработок в интернете, разработка сайтов, seo, оптимизация сайта, дизайн сайтов, поисковая оптимизация

Перенос сайта на Битрикс — настраиваем 301 редирект

Posted on | сентября 21, 2015 | No Comments

Всeм привeт!

В дaнный мoмeнт рaбoтaю нaд прoeктoм пo пeрeнoсу рaбoчeгo интeрнeт мaгaзинa с самописного движка на Битрикс (пока на домене висит старый сайт), новый тестирую на mebek.gtalex.ru (ссылку не поставил специально, дабы поисковики не полезли).

Основная часть работ уже выполнена (движек, дизайн, вёрстка, отработал скриптик по переносу всего контента), а вот на редиректе я решил остановиться отдельно.
Итак, как заявит каждый SEO оптимизатор — важнейшая часть при смене движка, это 301 редирект со страничек которые участвовали в продвижении (да и вообще любых страничек которые были на сайте).
Для осуществления такого переноса, я все старые ID и CODE секций и элементов так же перенёс в поля инфоблока Битрикса.

Таким образом с детальных страниц товара вида

http://www.mebek.ru/13/1506/kacheli_sadovye_otdyx_3_r

необходимо сделать редирект на страницы вида (конечно же с ЧПУ вида .../код раздела/код продукции/)

http://mebek.ru/cat/kacheli-sadovye/kacheli_sadovye_otdyx_3_r/

И страниц категорий товара вида

http://www.mebek.ru/7/stoly-skladnye

на новый

http://www.mebek.ru/cat/stoly-skladnye/

Непосредственно, для переноса в urlrewrite.php добавляем правило
array(
"CONDITION" => "#^/\d*/#",
"RULE" => "",
"ID" => "mebek:catalog",
"PATH" => "/redirect301.php",
),

всё что, начинается с цифры — отправляем скрипту, который уже будет разбираться, что за страница пришла и редиректить куда нужно.

Код скрипта чуть ниже, в принципе там всё просто и понятно — определили страницу и отредиректили 301м кодом, единственное на что обращу внимание — это использование кэша (тоже думаю понятно зачем).

Проверить в работе получится, только при осуществлении перехода, либо вместо www.mebek.ru используем mebek.gtalex.ru

Исходник скрипта:

<?
define('NR', "<br/>\r\n");
define('ROOT', $_SERVER["DOCUMENT_ROOT"]);
define('HOST', $_SERVER["HTTP_HOST"]);
$url = $_SERVER["SCRIPT_URL"];
if (preg_match("!^\/(\d+)\/(\d+)/(.*?)$!",$url,$match)) {
require(ROOT."/bitrix/modules/main/include/prolog_before.php");
$obCache = new CPHPCache;
$lifeTime = 6*60*60; # 6 часов
$cacheID = 'redirect301.php.'.$match[1];
if($obCache->InitCache($lifeTime, $cacheID, "/")){
$vars = $obCache->GetVars();
$CODE = $vars["CODE"];
} else {
CModule::IncludeModule('iblock');
$IBLOCK_ID = 9;
if($obCache->StartDataCache()) {
$arFilter = array('IBLOCK_ID' => $IBLOCK_ID, 'EXTERNAL_ID' => $match[1]);
$rsSections = CIBlockSection::GetList(array(), $arFilter);
if ($arSection = $rsSections->Fetch()) {
$CODE = $arSection["CODE"];
}
$obCache->EndDataCache(array(
"CODE" => $CODE
));
}
}
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://'.HOST.'/cat/'.$CODE.'/'.$match[3].'/');
exit();
} elseif (preg_match("!^\/(\d+)\/(.*?)$!",$url,$match)) {
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://'.HOST.'/cat/'.$match[2].'/');
exit();
}
die();
?>

© - деньги из паутины

Comments

Leave a Reply

You must be logged in to post a comment.

  • Самые обсуждаемые новости

    • Возможно ли продвинуть сайт без денег?

      June 27, 2011
      Нет. Можно было бы остановиться на этом, но вам наверняка хочется услышать аргументы ) На что вообще нужны деньги? Домен я даже считать не бу?…