Содержание:
Как убрать дубли страниц в MODX?
Александр, добрый вечер! Задался вопросом как убрать дублирование контента в modx revo, но с некоторыми моментами не всё так просто, мне знакомы таки варианты:
Чтобы указать приоритет адреса сайта со слешем / или без а так же с префиксом www или без него, нужно в корневой директории открыть файл .htaccess и раскомментировать вот эти строки:
Создаём плагин и вешаем его на событие OnHandleRequest
Чтобы указать приоритет адреса сайта со слешем / или без а так же с префиксом www или без него, нужно в корневой директории открыть файл .htaccess и раскомментировать вот эти строки:
# Переадресация с www.site.ru на site.ru RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^site\.ru [NC] RewriteRule (.*) http://site.ru/$1 [R=301,L] # Добавляем слеш к адресам - site.ru -> site.ru/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\..{1,10}$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ http://site.ru/$1/ [L,R=301]Если нужно избавиться от дублей типа: site.ru/index.php
Создаём плагин и вешаем его на событие OnHandleRequest
<?php switch ($modx->event->name) { case 'OnHandleRequest': if (strpos($_SERVER['REQUEST_URI'],'index.php') !== false && $modx->context->get('key') != 'mgr') { if (!empty($_GET['id'])) { $id = (int)$_GET['id']; if (!$modx->getCount('modResource', array('id' => $id, 'published' => 1, 'deleted' => 0))) { $modx->sendErrorPage(); } } else { $id = $modx->getOption('site_start', null, 1); } $modx->sendRedirect($modx->makeUrl($id),array('responseCode' => 'HTTP/1.1 301 Moved Permanently')); } break; }Александр, как можно избавиться от таких дублей: site.ru/?id=2, понятно что есть rel canonical и файл robots.txt, но всё же, как можно решить проблему с таким дублированием?
Один из вариантов как можно убрать дубли — это указать в robots.txt определённых директив, с помощью которых дать понять какие параметры поисковыми роботами учитывать не нужно.
Другой вариант — это добавить на страницы элемент с атрибутом rel, имеющим значение canonical:
Это будет означать, что у этой странице каноническим будет URL:
Все остальные будет его копиями.
Можете добавить в проект два этих решения.
Ещё в «Google Search Console» имеется настройка «Параметры URL», в ней можно добавить параметры и указать на что они влияют.