Сохранение старых URL при переходе на Drupal с другого движка

06 Май 2010
Опубликовано VladSavitsky
Задача: 

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

Решение
Старые URL уже не существуют, но могут использоваться. Нам нужно сделать 301й редирект со старого URL на новый.

Варианты

  • Редирект со старого URL на новый URL в файле .htaccess
  • Редирект со старого URL на новый URL с помощью модулей Pathauto и Global Redirect

Редирект со старого URL на новый URL в файле .htaccess

Самый простой вариант.
В файле .htaccess (в корне сайта) после:

<IfModule mod_rewrite.c>
  RewriteEngine on

добавить:
  RewriteCond %{REQUEST_URI} ^/old_url_1.html
  RewriteCond %{REQUEST_URI} ^/old_url_2.html
  RewriteCond %{REQUEST_URI} ^/old_url_3.html

  RewriteCond %{REQUEST_URI} ^/old_url_N.html

  RewriteRule ^(.*)$ http://site.ru$1 [R=301,L]

Редирект со старого URL на новый URL с помощью модулей Pathauto и Global Redirect

Другой вариант - использовать модуль Pathauto в комплекте c Global Redirect. Для ноды в админке создаётся ещё один синоним и при обращении к нему Global Redirect будет редиректить на основной алиас ноды.
В этом случае всё кажется проще, но данные хранятся в базе и для редиректа будет полностью загружаться друпал. То есть производительность от этого пострадает. Да и "отключение" со временем такого редиректа займёт больше времени.

Полезные рецепты

Авторы решений:
Версия Drupal:
Модули:
 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>