301 редирект для движка Joomla

Для оптимизации сайта на 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 /

Иначе оно не будет работать.

массовая переадресация на Joomla

Перенаправление при ошибках

Некоторые при 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]

  1. Строка делает 301 редирект с www.site.ru/category/art1/zapis/ на www.site.ru/zapis/
  2. Строка говорит серверу, что если урл вида 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/

и забудьте.

Комментарии   

0 #11 Ольга 30.06.2017 13:53
Цитирую Алексей Кабаков:
Вам надо мигрировать на Joomla 3 - версия 1,5 уже не отвечает современным требованиям, её легко взломать. Не помню же эти компоненты, зайдите туда где делали редирект в sef и отмените его, потом сделайте новый с правильным адресом. Вариант №2 отключить этот компонент вообще и включить в настройках в положение "да" Установки Search Engine Optimization.

Спасибо, я так и думала. Что нужно новую версию, но мои програмисты, почему то говорят о слишком больших затратах и куче убитого времени.
К сожалению вариант №1 сделать не могу. потому что сама ссылка, которую отправила в 301-е путешествие была изначально в разделе 404, откуда сразу же исчезла после перенаправления. Где теперь ее искать ума не приложу :-)
А второй потянет за собой отключение всех правильных перенаправлений (я так думаю). А это мне не нужно.
Все равно, спасибо за консультацию! Успехов в работе и жду новые материалы по Джумле.
Цитировать
0 #10 Алексей Кабаков 30.06.2017 13:43
Вам надо мигрировать на Joomla 3 - версия 1,5 уже не отвечает современным требованиям, её легко взломать. Не помню же эти компоненты, зайдите туда где делали редирект в sef и отмените его, потом сделайте новый с правильным адресом. Вариант №2 отключить этот компонент вообще и включить в настройках в положение "да" Установки Search Engine Optimization.
Цитировать
0 #9 Ольга 30.06.2017 13:30
Какая у вас версия Joomla и где находится управление запросами 404?

Версия 1.5.26
Управление запросами 404 находится в
"Компоненты" есть раздел "sh404SEF", в котором уже и есть те вышеперечисленные мной менюшки
Цитировать
0 #8 Алексей Кабаков 30.06.2017 13:27
Цитирую Ольга:
Цитирую Super User:
Если делали через Компоненты - Перенаправления, то удалите редирект. Отметьте его галочкой и в корзину.

В том то и проблема, что не можем найти перенаправления((( Вот что есть в разделе:

Просмотреть/Изменить SEF ссылки
(Поиск: Применить Сбросить
shURL: Применить Сбросить)
Управление псевдонимами
Контроль shURL)

Управление запросами 404
META теги
Аналитика
Документация

Ничего похожего на перенаправления не нашли(

Какая у вас версия Joomla и где находится управление запросами 404?
Цитировать
0 #7 Ольга 30.06.2017 13:04
Цитирую Super User:
Если делали через Компоненты - Перенаправления, то удалите редирект. Отметьте его галочкой и в корзину.

В том то и проблема, что не можем найти перенаправления((( Вот что есть в разделе:

Просмотреть/Изменить SEF ссылки
(Поиск: Применить Сбросить
shURL: Применить Сбросить)
Управление псевдонимами
Контроль shURL)

Управление запросами 404
META теги
Аналитика
Документация

Ничего похожего на перенаправления не нашли(
Цитировать
0 #6 Super User 30.06.2017 10:14
Если делали через Компоненты - Перенаправления, то удалите редирект. Отметьте его галочкой и в корзину.
Цитировать
0 #5 Super User 29.06.2017 18:28
Цитирую Ольга:
А как отменить редирект? Ошиблись перенаправили не на ту страницу, теперь нужно сделать отмену 301-го редиректа. Как это сделать в Джумле?

Что значит отменить? Это на всю жизнь и детям перейдёт... Шутка, если в htaccess прописали, то просто удалите строчки редиректа - от сих Redirect 301 и до конца правила.
Цитировать
0 #4 Ольга 29.06.2017 06:10
А как отменить редирект? Ошиблись перенаправили не на ту страницу, теперь нужно сделать отмену 301-го редиректа. Как это сделать в Джумле?
Цитировать
0 #3 Эзотерика 07.04.2017 10:10
ещё бы написали, как делать редирект средствами php/
Цитировать
+2 #2 Administrator 15.12.2016 08:33
Для начала удалите по инструкции выше index.php потом только руками, на первый взгляд не вижу вариантов если требуется изменить url на каждой странице. Вариант с робот крайний, лучше убрать для начала index вовсе.
Цитировать

Добавить комментарий


Защитный код
Обновить