Навигация

 
 

Календарь

«    Апрель 2018    »
ПнВтСрЧтПтСбВс
 1
2345678
9101112131415
16171819202122
23242526272829
30 
 

Редирект 301, или борьба с дублированием контента в DLE
+15

Редирект 301, или борьба с дублированием контента в DLE

Интересно, замечали ли Вы, что новости в DLE могут быть доступными по нескольким адресам одновременно. Если Вы начали работать с DataLife Engine еще в 2007 году, то, наверное, помните выход DataLife Engine 6.5, в котором стало доступно три типа ЧПУ. Разумеется, что используется только один тип, но новости доступны и по остальным двум. Откуда поисковые системы узнают об остальных двух? Думаю, причина в том, что Вы используете или использовали сторонние модули, если дублирование контента уже есть. Также возможен вариант, когда альтернативное имя категории или новости, к примеру, меняется и тогда новость доступна по новому адресу, в таком случае, если новость уже проиндексирована, то поисковая система знает ее старый адрес и новый. В этом случае происходит дублирование контента. Кстати, поисковая система Google в своем сервисе "Инструменты для веб-мастеров" предоставляет список страниц на Вашем сайте, которые дублируют содержимое.

Проблему дублирования контента в DataLife Engine я предлагаю решить с помощью 301 редиректа на PHP. Это небольшой хак, установка которого займет у Вас считанные минуты. Как он работает? Хак проверяет переменную $full_link (уникальный адрес полной новости), которую генерирует движок и если адрес запрошенной новости отличается от значения в переменной $full_link, то выполняется 301 редирект на адрес полной новости, который хранится в переменной $full_link.

Давайте перейдем к установке.

Откройте файл /engine/modules/show.full.php и найдите строку

$tpl->set( '{full-link}', $full_link );

добавьте ниже

$full_link_ = !isset ($_GET['cstart']) ? $full_link : $link_page . intval ($_GET['cstart']) . ',' . $news_name . '.html';
if ($config['http_home_url'] . substr ($_SERVER['REQUEST_URI'], 1) != $full_link_) {
header ($_SERVER['SERVER_PROTOCOL'] . '301 Moved Permanently');
header ('Location: ' . $full_link_);
die ();
}

Готово. Установка завершена.

  • Комментарии
  • ВКонтакте