1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

vBulletin 4.x URL Redirection (Forum, Blog, CMS)

Тема в разделе "Переезд на XenForo c других движков", создана пользователем Hafner, 22.03.2012.

Загрузка
  1. Hafner

    Hafner Местный

    Регистрация:
    07.10.10
    Сообщения:
    55
    Симпатии:
    98
    Версия XF:
    1.1.1
    Небольшое вступление, в котором для кого-то я "открою Америку", а для кого-то информация будет полезной. Редирект старых ссылок на новые в первую очередь необходим для поисковых систем, которые ранее проиндексировали ваш сайт, а после вашего переезда на новый движок получают "битые" ссылки и очень сильно расстраиваются. Так как я по профессиональной области связан с продвижением и ранжированием в поисковиках, скажу по опыту, что поисковые системы негативно относятся к сайтам, у которых большая часть контента по старым ссылкам вдруг стала недоступна. Кого будет винить пользователь, если найдя нужный материал в том же Яндексе он получает на выходе битую ссылку? Правильно, во всем виноват "кривой" поисковик, поэтому поисковые системы в свою очередь накладывают на сайты-нарушители всевозможные санкции, что понижает ваш сайт в выдаче и следовательно трафик снижается в разы и не только трафик, но и показатели тИЦ и PR под угрозой. Если вас трафик из поисковиков мало интересует, то закрываем эту тему, т.к. последующая информация будет для вас бесполезной.

    Дабы обезопасить свой сайт от санкций со стороны поисковых систем требуется со старых страниц сделать 301 Редирект на новые. 301 Редирект автоматом перебросит пользователей на новый линк, а поисковым системам сообщит, что страница постоянно перемещена на новый адрес и со временем поисковики в выдаче поменяют ваши ссылки на новые.

    Совсем недавно я переносил свой vB4 Suite на XF использовав для импорта этот скрипт, который не только перекинул весь форум, но и создал разделы и темы с блогами, статьями CMS. Следующий шаг это проставить для всех старых страниц 301 Редирект и для этой задачи я использовал vBulletin 4.x URL Redirection (архив во вложении).

    Собственно процесс настройки для всех случаев на оффсайте описан подробно, однако, в данном решении нет возможности проставить 301 Редирект для Блогов и Статей CMS, поэтому небольшой гайд как я реализовал редирект для статей (для блогов можно сделать по аналогии):
    1. Открываем файл "/library/XenForo/Model/Import.php" и добавляем функцию в класс:
      PHP:
          public function mapArticle($id$default null)
          {
              
      $ids $this->getImportContentMap('cmsarticle'$id);
              return (
      $ids reset($ids) : $default);
          }
    2. Размещаем файл content.php, где был установлен ранее Suite, со следующим содержанием:
      PHP:
      <?php
       
      $startTime 
      microtime(true);
       
      $fileDir dirname(__FILE__);
      if (
      file_exists($fileDir '/301config.php'))
      {
          include(
      $fileDir '/301config.php');
      }
       
      require(
      $fileDir '/library/XenForo/Autoloader.php');
      XenForo_Autoloader::getInstance()->setupAutoloader($fileDir '/library');
       
      XenForo_Application::initialize($fileDir '/library'$fileDir);
      XenForo_Application::set('page_start_time'$startTime);
       
      $http = new Zend_Controller_Request_Http();
       
      $inputHandler = new XenForo_Input($http);
       
      $input $inputHandler->filter(array(
          
      'cmsarticle' => XenForo_Input::UINT
      ));
      if(
      preg_match('/(?:content)\.php(?:\/|\?)([0-9]+)/'$http->getRequestUri(), $matches) && count($matches) >= 1){   
          
      $input['cmsarticle'] = intval($matches[1]);
      }
       
       
      $importModel XenForo_Model::create('XenForo_Model_Import');
       
      $target false;
      if (
      $input['cmsarticle'])
      {
          if (
      $newId $importModel->mapArticle($input['cmsarticle']))
          {
              
      $target XenForo_Link::buildPublicLink('canonical:threads', array('thread_id' => $newId));
          }
      }
       
      if (!
      $target)
      {
          
      $target XenForo_Link::buildPublicLink('canonical:index');
      }
       
      $response = new Zend_Controller_Response_Http();
      $response->setRedirect(XenForo_Link::convertUriToAbsoluteUri($target), 301);
      $response->sendResponse();
    3. Добавляем в .htaccess правило (для apache):
      Код:
      RewriteRule ^/old-dir/content.php /new-dir/content.php
    P.S. не забываем сохранить лог в таблицу (будет запрос от мастера в конце импорта на новый форум) и для редиректа внести настройки в файл 301config.php
     

    Вложения:

    • vB4Redir.zip
      Размер файла:
      8,4 КБ
      Просмотров:
      28
    offroad, Gr@pe Fruit, TAIFUN и ещё 1-му нравится это.
  2. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Кстати, когда я в свое время добавлял скрипты редиректов с булки на XF, там был один баг. Если тема имела несколько страниц, то ссылки на страницы (кроме первой, то есть самой темы) не срабатывали и редиректило вроде как просто на главную или и вовсе страница не была найдена. Сейчас эта проблема решена, проверяли?
     
  3. Hafner

    Hafner Местный

    Регистрация:
    07.10.10
    Сообщения:
    55
    Симпатии:
    98
    Версия XF:
    1.1.1
    Сейчас проверил - редиректит на первый пост темы, что в принципе не смертельно. Хотя можно над регуляркой в скрипте немного поколдовать и решить эту проблему.
     
    Gr@pe Fruit нравится это.
  4. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    Ребята столкнулся с проблемой, надеюсь на вашу помощь. Поставил vBulletin 4.x URL Redirection / сделал все как расписано выше.

    Ранее стоял vB 4.1.2 + vBSEO, url-ы custom типа / 379-postname.html

    Буду благодарен за помощь, спасибо!
     
  5. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Вам сюда:
    Код:
    http://tools.geekpoint.net/xfseo/
     
  6. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    К сожалению не помогло, при попытке открыть старую страницу редирект не происходит / отображается пустая белая страница / 500 error.
     
  7. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    То есть вы загружали там XML со своими собственными настройками URL?
     
  8. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    Да, именно файл vbseo_urls.xml urls.JPG
     
  9. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    В логах ошибок что пишется?
     
  10. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    В админ панели "Журнал ошибок сервера" - пуст.

    Ребята, я хаотично написал все, сейчас попытаюсь расписать более детально.

    Итак, есть работающий форум domain.com / vBulletin 4.2.0 + плагин vBSEO 3.6.0.

    Для теста, перед переносом я создал поддомен new.domain.com, на которым установил XF 1.1.3 и успешно перенес все при помощи vBulletin 4 to XenForo Importer.

    На данный момент установил vB4 URL Redirection 0.0.2, в 301config.php раскомментил строчку: define('IMPORT_LOG_TABLE', 'import_log');> / в базе данных MySQL есть таблица archived_import_log.

    Попытался воспользоваться утилитой vBSEO to vBulletin URLs, так же без результатов.
     
  11. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Ну утилита четко показывает, что ей формат непонятен.

    Тут нужно искать спеца по редиректам, чтобы он создал нормальный .htaccess.
    Можно еще попробовать автора утилиты разыскать и ему показать свой формат URL для vBSEO. Может поможет.
     
  12. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    Теоретически, проще будет создать полную карту сайта и посредством регулярных выражений сделать вручную 301 редирект со старых URL-ов на новые.

    Может стоит рискнуть, удалить vBSEO с текущего домена? Теоретически, после удаления vBSEO плагин vB4 URL Redirection 0.0.2 должен заработать. Как вы думаете?
     
  13. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    И что вам даст удаление vBSEO?
    Насколько я помню, когда vBSEO ставишь, то ничего плохого со старыми ссылками не случается.
    А вот когда удаляешь, то все ссылки становятся недоступными. Разве нет? Именно поэтому советуют 10 раз подумать, нужен ли vBSEO.
     
  14. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    А что говорит лог ошибок самого сервера, а не форума?
     
  15. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    Я на самом деле думал, просто не думал что через пару лет возникнет необходимость / желание переезда на XF.
    ISPManager error log - 0 byte.
     
  16. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    Удалось решить проблему, я думаю пригодиться еще кому то.

    1. vB4 URL Redirection 0.0.2 заливаем только содержимое папки standard-basic-advanced, если залили содержимое папки mod_rewrite - работать не будет. То есть заливаем только файлы из папки standard-basic-advanced.

    2. В файле 301config.php проверяем путь:
    Код:
    define('IMPORT_LOG_TABLE', 'archived_import_log');
    Если не знаем что за путь и откуда он взялся, читаем здесь.

    3. Генерируем редиректы здесь. Заливаем vbseo_urls.xml, который мы предварительно сохранили из vBSEO.

    В моем случае конвертер не смог создать правила редиректов только для форумов / разделов, благо их не много. Все ссылки на топики / сообщения восстановлены. Благодаря этому со стороны поисковых систем форум не получит никаких санкций.

    Romchik®, Pepelac ребята, спасибо вам за поддержку!
     
    infis и Romchik® нравится это.
  17. kovarnyi

    kovarnyi Местный

    Регистрация:
    09.05.13
    Сообщения:
    108
    Симпатии:
    1
    Версия XF:
    1.2.4
    Возможно как либо настроить что бы старые ссылки булетин4 открывались на новом форуме ксеФоро.
    Форум был переведён на движок КсенФоро удачно, но вот ссылки старые в темах форума выдают 404.... ссылок много, хотелось бы исправить
     
  18. whitehat

    whitehat Местный

    Регистрация:
    24.03.13
    Сообщения:
    20
    Симпатии:
    5
    Версия XF:
    1.1.4
    Ответ в предыдущем сообщении, воспользуйтесь утилитой.
     
  19. Romchik®

    Romchik® The Power of Dreams Команда форума

    Регистрация:
    26.09.10
    Сообщения:
    5 746
    Симпатии:
    5 311
    Версия XF:
    1.5.18
    Утилита нужна, если был установлен vBSEO.
     
  20. kovarnyi

    kovarnyi Местный

    Регистрация:
    09.05.13
    Сообщения:
    108
    Симпатии:
    1
    Версия XF:
    1.2.4
    А если не было vBSEO?

    ссылки у меня были обычные вбулетинские без чпу
     

Поделиться этой страницей