Joomla 1.6: как отключить RSS

Joomla 1.6: как отключить RSS

В ходе запуска первого сайта на Joomla 1.6 не обеспокоился тем фактом, что в стандартное ядро сайта входит RSS модуль, который генерирует в <head> категорий блога следующие ссылки:

<link href="/feed/atom.html" rel="alternate" type="application/atom+xml" title="Atom 1.0" />
<link href="/feed/rss.html" rel="alternate" type="application/rss+xml" title="RSS 2.0" />

По умолчанию, если сразу не отключить модуль RSS, то Joomla при заполнении сайта начинает генерировать странички RSS новостей категорий и тем самым плодить дубли уже созданных обычных страниц.

Если у вас сайт еще только начал заполняться и "лишние" страницы RSS не успели засветиться в поисковой выдаче наравне с обычными страницами, то можно обойтись малой кровью, а именно простым отключенем данной опции через систему администрирования.

Необходимо зайти в "Материалы" -> "Менеджер категорий"  и нажать на кнопку "Настройки" с иконкой в правом верхнем углу панели управления админкой. В открывшемся окне выбираем вкладку интеграция и ставим флажок "Ссылки на ленты новостей" в поле "Скрыть". См рис. 1

Как отключить RSS в Joomla 1.6Рис. 1

Теперь ссылки у нас не показываются в владельцы новых сайтов могут быть спокойны: дублей страниц в формате RSS поисковые системы уже не увидят.

А как быть тем, у кого RSS страницы уже попали в индекс того же Яндекса? Надо понимать, что обычным отключением RSS обойтись не получится, поскольку при переходе по ссылке из кеша Яндексу будет генерироваться страница. Для того, чтобы Яндекс "забыл" про существование этих страниц, которые уже в кеше Яндекса, необходимо сделать небольшую операцию в коде самого ядра, чтобы при запросу страницы генерировалась 404 ошибка.

Подключаемся ftp или ssh клиентом к хостингу, находим следующий файл: libraries\joomla\document\feed\feed.php, скачиваем его на локальный компьютер и открываем в любом html-редакторе.

Находим 177-183 строки

function __construct($options = array())
{
parent::__construct($options);
//set document type
$this->_type = 'feed';
}

и меням их на

function __construct ($options = array ())
{
parent::__construct ($options);
JError::raiseError (404, JText::_('Resource Not Found'));
}

Ну вот и всё. Новый файл готов. Загружаем его на хостинг и проверяем: выдается ли по RSS-ссылкам 404 ответ сервера.

Если нет, то обновляем кеш сайта на сервере и смотрим снова.

Скорее всего на этот раз всё будет работать.

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