Иногда при изменении структуры сайта, нужно сделать редирект со старых разделов, страниц сайта на новые. 

Это можно сделать в файле .htaccess 

C помощью директивы Redirect - делается редирект с одной страницы на другую.

Синтаксис:

Redirect [status] URL-path URL

Status, не обязательный параметр, может иметь значения:

  • 301 - документ перемещен постоянно
  • 302 - документ перемещен временно
  • 303 - смотрите другой
  • 410 - убран

Пример, страница переехала в другое место, из 

/download/2-yandex-google-map 

в 

http://jdevelop.info/yandex-i-google-karty-dlya-joomla-ygmaps.

Редирект для этого случая будет такой:

Redirect 301 /download/2-yandex-google-map http://jdevelop.info/yandex-i-google-karty-dlya-joomla-ygmaps

Или RedirectMatch - редирект с помощью регулярного выражения. 

Например, на сайте есть ссылки вида:

/articles/13-seo/313-redirekt-na-khostinge

13-seo это id и альяс категории.

Я сделал подпункт с альясом seo-optimizatsiya для пункта articles. 

И теперь нужно все страницы вида 

/articles/13-seo/id-альяс-материала

перенаправлять на страницы уже вот такого вида :

/articles/seo-optimizatsiya/id-альяс-материала

Делаем редирект со статусом 301, чтобы поисковая система заменила старые ссылки на новые. 

Иначе, при таком добавлении пункта меню мы получим в индексе поисковой системы задвоенные страницы.

То есть будут страницы двух видов:

/articles/13-seo/313-redirekt-na-khostinge
/articles/seo-optimizatsiya/id-альяс-материала

Добавление такой строки в файл htaccess, приведет к тому, что в индексе останутся только страницы с правильными URL

RedirectMatch 301 /articles/13-seo/(.*)$ http://jdevelop.info/articles/seo-optimizatsiya/$1