Для оптимизации сайта на Joomla или ином движке должны использоваться постоянные 301 редиректы (Moved Permanently), они помогают направить робота на нужную страницу и склеить web-документы. Ниже я расскажу, как использовать основной 301 редирект для Joomla, то есть, как сделать простую и усложнённую переадресацию для достижения целей продвижения.
Типы редиректа
Сегодня мы рассмотрим именно 301 редирект, он указывает боту, что страница перемещена на постоянной основе и старый документ больше не нужен в выдаче. К слову, если поставить 302 перенаправление (Temporary Redirect), то оно укажет, что документ перемещён временно, соответственно, со временем возможет откат переадресации и возврат в индекс старой страницы. Прописываются перенаправления 301 в техническом файле .htaccess, который находится в корне сайта.
301 редирект можно делать для отдельно взятой страницы и для массовой переадресации, например, для склейки страниц с www и без оного, впрочем, обо всём по порядку.
Массовая склейка index.php
Начнём с массового 301 редиректа, который поможет склеить страницы с index.php и без. Сделать эту работу можно в административной панели Joomla в общих настройках по пути:
Сайт - Использовать mod_rewrite – да.
Если же по каким-то техническим причинам вы не хотите включать склейку в админке, то пропишите в htaccess код редиректа:
# склеиваем index.php с / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ RewriteRule ^index\.php$ http://web-gate.org/$1 [R=301,L]
Альтернативный код 301 для массовой переадресации:
RewriteEngine On RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://site.ru/$1 [R=301,L]
Естественно, site.ru стоит заменить адресом своего сайта.
Простой редирект
Тут всё просто, если надо перенаправить с одной страницы на другую, то пропишите в htaccess
Redirect 301 /категория/страница.html http://site.ru/категория/другая страница.html
Обратите внимание, страница с которой идёт переадресация указывается от корня, то есть site.ru не указываем, а страница на которую идёт редирект прописывается полностью.
Этот вид 301 редиректа пригодится, если вы решили изменить адрес страницы или переносите web-документ из одной категории в другую, но не хотите терять его вес.
Да, перенаправление (любое) должно стоять после строк
RewriteEngine On RewriteBase /
Иначе оно не будет работать.
Перенаправление при ошибках
Некоторые при 404 ошибках не отдают «поломанную» страницу, а перенаправляют пользователя на морду сайта или карту. С точки зрения seo это не совсем верно, но и логика тут есть, ведь терять пользователя в период кризиса не хочет никто. Для такой переадресации достаточно прописать в htaccess
ErrorDocument 404 http://сайт.ру/
Ну или указать другую нужную страницу.
Редирект карты сайта
Как известно, Joomla формирует url карты сайта очень хитро, типа
Site.ru/index.php?option=com_xmap&sitemap=1&view=xml
Если вы хотите, чтобы при нажатии sitemap в rds баре или просто наборе урла
Site.ru/sitemap.xml
У вас появлялась карта, то пропишите в htaccess следующий код для Joomla 1.5
RewriteEngine On RewriteCond %{REQUEST_URI} ^/sitemap.xml RewriteRule .* /index.php?option=com_xmap&sitemap=1&view=xml
Для Joomla 2.5
RewriteEngine On RewriteCond %{REQUEST_URI} ^/sitemap.xml RewriteRule .* /index.php?option=com_xmap&view=xml&id=1 [R=301,L]
Если RewriteEngine On уже включен выше, то дублировать его ещё раз не надо.
Вырезать кусок адреса
Часто бывает нужно вырезать из url часть адреса, например, у вас открываются страницы по адресу
www.site.ru//category/art1/zapis/,
А вы хотите видеть
www.site.ru /zapis/
То пропишите код
RewriteRule ^category/art1/zapis/$ http://%{HTTP_HOST}/zapis/ [R=301,L] RewriteRule ^zapis/$ /category/art1/zapis/ [L]
- Строка делает 301 редирект с www.site.ru/category/art1/zapis/ на www.site.ru/zapis/
- Строка говорит серверу, что если урл вида www.site.ru/zapis/ то надо показывать то, что находится по адресу www.site.ru/category/art1/zapis/
В итоге, если зайти на www.site.ru/category/art1/zapis/, то нас сначала редиректнет на www.site.ru/zapis/, а потом покажется то, что находится по адресу www.site.ru/category/art1/zapis/
Если вас достал весь сайт и вы хотите его переадресовать полностью, то пропишите
RedirectPermanent / http://site.ru/
и забудьте.