Компонент редирект (Перенаправление) в Joomla - настраиваем правильно!

Сам по себе компонент компонент Перенаправление достаточно полезен, он позволяет отслеживать битые ссылки на сайте.

Все страницы которых не существует (404 ошибка) и на которые попали посетители (случайно или умышленно) компонент зарегистрирует и запишет.

Увидеть список вы можете просто открыв сам компонент в вашей админке по адресу /administrator/index.php?option=com_redirect:

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

Но в процессе работы я столкнулся с особенностями работы данного компонента, о которых даже не встречал упоминания разработчиков Joomla.

Компонент хорошо работает и справляется со своими обязанностями, когда ссылки в нем появляются естественным путем, то есть когда какой то пользователь действительно попал на 404 страницу - компонент это записал сообщил вам, а вы внесли коррективы и перенаправили посетителя на нужную страницу.

Но передо мной встала другая задача - в связи с переносом сайта одного клиента на Joomla, старые URL сайта стали недействительны, а это как известно ни есть гуд. Кому охота получать трафик с поисковиков и тут же терять его, когда посетитель видит 404 ошибку. И тут на помощь должен придти 301 редирект, который перенаправит посетителя на нужную страницу и который и лежит в основе работы обсуждаемого компонента Joomla.

Какого же было мое удивление, когда введя исходящий URL и новый принимающий я не получил должного результата.

Те страницы старого сайта (с которой должен был осуществляться 301 редирект) которые я задавал вручную и редиректил на новую страницу - НЕ РАБОТАЛИ!

Я перерыл кучу тем на официальном форуме Joomla.org и в мою лысую голову закралась одна догадка.

Дело оказалось в переменной public $live_site в файле configuration.php о которой почему то очень мало пишут.

При установке Joomla она имеет как правило пустое значение. И вот это то и приводит к неправильной работе компонента редиректа в Joomla, при ручном добавлении страниц.

Стоило мне только отредактировать файл configuration.php  - присвоить переменной $livesite значение http://mydomain.ru и все заработало, страницы добавлялись и правильно редиректились.

Почему об этом не сказано в официальном руководстве для меня до сих пор загадка...


Полезно почитать по теме:

  • Спасибо!
  • Я мучил Apache :)) Думал он грешен
  • Пожалуйста, рад если помогло разобраться
  • У меня работант но не все что может быть ?
  • У меня работают только страницы которые добавлены автоматом, а те которые добавил руками не работают, не подскажете в чем проблема ?
  • Вы добавили переменную $livesite как описано в статье?
  • Спасибо за полезную информацию - заработало! )) Извините за вопрос не по теме: Как вы отключили ссылку в комментах на powered by CACKLE?
  • Я ее не отключал, а спрятал при помощи CSS =)
  • Спасибо за ответ, был бы признателен за стиль CSS и куда его пихнуть, если конечно не влом, а то самому голову ломать просто некогда, сейчас новый сайт мастерю - проблем насущных и так хватает, до таких дел просто руки не доходят...просто устал.(
  • Вроде так : .mc-info-box h6 {display: none;}
  • Спасибо, Сергей.
  • Пожалуйста, Павел.
  • Ссылки вида http://www.mysite.ru/2009-11-03-21-33-42/*.html не хотят редиректится. Такой вид пришел из joomla 1.5, - забывал по началу псевдонимы прописывать. Потом сделал миграцию на 2.5... Теперь мучаюсь...
  • ну в этом случае только ручная пропись в htaccess
  • Доброго вечера! Сменил движок и вопрос RedirectА убил все время. В файле configuration.php, что в корневой директории есть похожая переменная "$live_site", но дополнение ее ни к чему не привело( Версия joomlЫ 2.5.7. Что делать, Уважаемые???
  • А что вы пытаетесь сделать при помощи компонента? Если не работает, то как вариант можно вручную через htaccess прописывать. Муторно, долго, зато эффективно. Сам на это убил дохрена времени.
  • Начал решение вопроса сразу с правки ".htaccess" редиректом (Redirect 301 /stomatologiya.html http://med-siti-m.ru/index/stomatologija/0-8) и т.д., перенаправленные не работает. Компонент "перенаправление", как вы и писали не работает в случае внесение новых данных. Платный хостинг пока молчит( Догадываюсь, что они напишут... Куда копать? Сроки душат...
  • ну а какой сервер? Apache? Mod_rewrite включен?
  • Спасибо огромнейшее. Когда перелил сайт на J!2.5 на новый хостинг и вместо главной получал от Firefox "Неверное перенаправление на странице" (возможно из-за отключенных cookies) которое определялось из-за циклического/рекурсивного редиректа на index.php/ru/. Чистый дистрибутив работал, а с накатаной базой вываливался. Хотя админка работала нормально. Присвоение значения переменной $live_site из configuration.php помогло.
  • Отлично что это решение вам помогло.
  • Добрый вечер. У меня эта же проблема, перерыла интернет. Вы смогли решить эту проблему? Спасибо.
  • +1 В файле нет такой переменной. Дописал руками вывалилось с ошибками. Куда копать?
  • Да извиняюсь в тексте статьи была неправильно написана переменная. Ищите public $live_site = - именно она вам нужна
  • Нашел спасибо
  • Все выше сказанное не работает. Много написано про это, но как включить Mod_rewrite ?
  • отписалась тех.под включают они, раскоментил RewriteBase / и чего-то ничего
  • Решил попробовать компонент Joomsef. Скачал с офиц.сайта беспл.версию.http://www.artio.net/downloads/joomla/joomsef Итог - все алиасы с кириллицы автоматом переделались в латиницу, причем с яндекса.вебмастера, только что проверил, автоматический 301 редир на новые страницы. За сутки мучений - это лучшее. но 2 страницы так и остались _ не буду их трогать. Всем успехов
  • Разобрался, может кому поможет! Прописал все в ручную. В Файле .htaccess, надо убрать виндоувский перевод строк. Например в редакторе SciTE, вид типа перевода строк, включается так: в разделе "вид" > "символы перевода строк". Изменить: "настройка" > "символы перевода строк", выбираем - LF и сохраняем. Теперь главное файл перенести на сервер, в моем случае помогла терпеливая служба поддержки хостинга www.netfox.ru, указам на отсутствие обновленного .htaccess. Все отлично перезалилось через cPanel, встроенную в аккаунт хостера. Всем удачи!
  • добрый день не подскажете куда надо вставить этот код?
  • В стили его надо добавить, CSS знаете что такое?
  • знаю, файл то какой? в любое место что вставлять?
  • public $live_site подправил но редирект не работает http://abicus.ru/index.php/44/7/kopiry-printery-mfu/xerox/raskhodnye-materialy2012-04-07-12-55-29/006R01175-detail нужно направить на http://abicus.ru/catalog/44/7/mfu/xerox/toner/006r01175-inf.html ".htaccess" тоже пробовал, но рабочую формулу так и не нашел. Пробовал в лоб - не работает Redirect 301 http://abicus.ru/index.php/44/7/kopiry-printery-mfu/xerox/raskhodnye-materialy2012-04-07-12-55-29/006R01175-detail http://abicus.ru/catalog/44/7/mfu/xerox/toner/006r01175-inf.html Михаил
  • очень полезная статья
  • Сергей а касаемо K2, после обновления появились настройки SEF,что о них можете рассказать? Я решил избежать применения sh404sef и подобных штучек, и вот что получается, в карте сайта создаваемой xmap мне удалось из путей вырезать /component/k2/ Следующим образом (url удаляем /component/k2/ ):находим код на данном файле ...\plugins\xmap\com_k2\com_k2.php else { $xmap->IDS .= "|".$row->id; $node->link = 'index.php?option=com_k2&view=item&id='.$row->id.':'.$row->alias; $node->expandible = false;} и меняем на: else { $xmap->IDS .= "|".$row->id; $node->link = 'index.php?option=com_k2&view=item&id='.$row->id.':'.$row->alias . '&Itemid=' .$parent->id; $node->expandible = false; }, получаем в карте домен/пункт меню/материал...во избежания появления кучи дублей воспользовался новыми возможностями K2_ENFORCE_SEF_URL_CHARACTER_REPLACEMENTS ставим Да,K2_ADVANCED_SEF так же да, K2_SEF_URL_CATEGORY_PREFIX_FOR_ITEM Нет ,K2_SEF_USE_ITEM_ID_IN_URL Нет,Id материалов и категорий были отключен поскольку если пользователь будет не дописывать или наоборот добавлять знаки материал все равно откроется из за присутствия id материала,и есть шанс попадания в индекс кучи дублей.А вот теперь подобрался к вопросу, имея некоторые модули с материалами выбираемые по категории,получаю их линки домен/component/k2/ а хочется домен/пункт меню/материал, при этом в этом пункте меню будут материалы категории и дочерней категории.Как это реализовать.Простите за столь длинные изъяснения и некоторое не соответствее теме.Помогите пожалуйста разобраться...
  • Я вас понял. Проблема актуальная, но решения полного еще нет, многое в новой версии у меня вызывает вопросы и кажется недоделанным. Жду что разработчики еще доработают новую версию компонента.
  • Как я могу остановить этот компонент Перенаправление
  • ну он не работает, если в его панели перенаправления с битых ссылок на "живые" не активированы.
  • У меня была Joomla 1.5 сайт, и я сделал новый 2,5. ничего от старого сайта мне не нужно, но это редирект делать все больше и больше записей (более 50.000)
  • Спасибо!)
  • А если нужно с рабочей страницы перенаправить на другой домен
  • Спасибо Вам огромное! Очень нужная статья! И правда и непонятно почему про это не говорят разработчики. А вот подскажите, пож-та. Может быть Вы в курсе. У меня 2 сайта. Один это копия другого, просто контент разный. На второй почему то в перенаправлениях стоят ссылки с первого??? Как так может быть? Может я где-то чего в настройках не указала? Заранее спасибо!
  • Спасибо большое, сделал как Вы советуете, но ссылки все равно не работают. В чем может быть проблема?
  • вы ссылки в каком виде прописываете - она должна начинаться без доменного имени - ссылку указать надо не "http://domain.ru/11-o-kompanii/1-zakaz-transporta-po-moskve-moskovskoj-oblasti-i-rossii" а "/11-o-kompanii/1-zakaz-transporta-po-moskve-moskovskoj-oblasti-i-rossii"
  • Сергей, пожалуйста, помогите, стал указывать ссылку без доменного имени ситуация такая же. В чем может быть еще проблема?
  • Спасибо! 2 дня голову ломал...
  • Вот это интересный ньюанс, спасибо!
  • да, пожалуйста, Жень, сам не знал пока с этим компонентом не столкнулся, ща правда не знаю как ситуевина, давно не проверял.
  • Спасибо!
  • Не знаю о какой версии говорите вы, но вот в Joomla! 3 справка советует вписывать полные url. "...When entering URLs into the Source URL and Destination URL fields, enter the complete URL as you would type it into your web browser to view it...."
  • Короче такие дела, возникли проблемы с циклическим редиректом, какой то модуль или еще там косячил...ломал голову недели две, лазил по нету в поисках проблемы...И тут ваш способ , пока все работает..если сайт не ляжет опять в цикличку...значит очень хороший способ.Спасибо!!
  • Спасибо за статью, но у меня джумла последней версии и в ней нет переменной public $live_site в файле configuration.php. Сам плагин перенаправлений срабатывает только на ошибку 404, а настроить редирект на существующие страницы не могу. Дублей много на сайте, хотел проблему решить с помощью этого плагина. Я пробовал также создать 404 ошибку выключением материала, плагин фиксирует ссылку и ее направляю уже на нужную. Потом включаю материал и перенаправление пропадает. Не знаю что делать, очень прошу помочь. Как можно допилить этот плагин?
  • Уже неделю пытаюсь настроить компонент но он так и не работает. В $live_site все прописано да и не менялось там не чего. Через htaccess 301-й редирект работает а вот через компонент не хочет. Проблема появилась после обновления до Joomla! 3.5.1. Помогите решить проблему так как без компонента некуда. Заранее всем благодарен.
  • http://indiasof.ru Продажа лекарств
  • сделал как описано, всё равно не работает(
  • А у меня при попытне добавить новый редирект выдает ошибку Error Save failed with the following error: The source URL must be unique.
  • Это означает что подобный URL уже есть в списке com_redirect
  • Нету там ничего.
  • Настраивал на tiraz.biz.ua в джумле 3,6 всё работает
  • Спасибо автору за статью. У меня все пашет как надо, вот сайт - http://stimylrosta.com.ua Но почему-то возникают странные, непонятные ссылки. Что-то наподобие вот этого: dc0fe06f865cbe1d9d9e9ef9ef67d4b2 joomla/poleznye-rekomendatsii/images/stories/explore.php?baca Может кто знает, с чем это связано???
  • всё заработало, спасибо.