Иногда при изменении структуры сайта, нужно сделать редирект со старых разделов, страниц сайта на новые.
Это можно сделать в файле .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