В движке Joomla 3 имеется полезный плагин "Система - Перенаправления" для отлавливания "битых" ссылок. Многие пользователи не в полной мере представляют принцип его работы и часто задают ряд вопросов, на самые популярные из которых попробуем дать исчерпывающие ответы.
В чём польза плагина перенаправления
При неправильной настройке системный плагин редиректа Joomla 3 может нанести больше вреда чем пользы.
Для примера, когда в настройке плагина "Система - Перенаправления" включено "Сохранять ссылки" и сайт при этом посещает множество вредоносных сканнеров генерирующийх "битые" ссылки. Таким образом таблица базы данных со временем раздуется до неимоверных размеров и открытие страниц веб-сайта будет со значительными задержками.
Польза же системного плагина перенаправления Joomla 3 в том, что если мы имеем популярную статью с большим числом визитов, ссылкой на которую поделилось много людей на различных веб-сайтах и форумах, то при желании изменить алиас статьи мы можем спокойно это сделать перенаправив посетителей на веб-адрес с новым алиасом с помощью данного плагина.
"404 просмотры" не учитываются
"Менеджер плагинов: Система - Перенаправления - Панель управления" переходы по включенным перенаправляющим ссылкам с "Исходный URL" на "Новый URL" не учитываются - почему?
Когда в "Менеджер перенаправлений: Ссылки - Панель управления" создана ссылка перенаправления со старого адреса на новый и она включена ("Состояние" опубликована), то переходы по таким перенаправлениям не учитываются в столбце как "404 просмотры". Следовательно, узнать актуальна и нужна ли эта ссылка-перенаправление не представляется возможным.
"404 просмотры" учитываются только тогда, когда "Состояние" ссылки неопубликована - это поведение заложено в логике плагина: /plugins/system/redirect/redirect.php
стр 263
// A redirect object was found and, if published, will be used
стр 293
// No redirect object was found so we create an entry in the redirect table
стр 324
// We have an unpublished redirect object, increment the hit counter
Инкрементирование счётчика хитов (increment the hit counter) перехода по старым адресам реализовано в коде плагина начиная со строки 324 и только при переходе по неопубликованному старому адресу "unpublished redirect".
Как проверить актуальность "битых" ссылок
Чтобы узнать актуальна ли ссылка, её следует отключить и запомнить число переходов, а спустя некоторое время (1-2 недели или месяца) проверить не изменилось ли значение. Для сброса счётчика переходов в 0 удалить ссылку и создеть её заново.
Если нужно проверить сразу много старых ссылок, то можно:
- сначала отключить, отсортировать по состоянию отключенные
- прямо в окне браузера выделить "Исходный URL" и "Новый URL"
- скопировать в текстовый редактор где массовой заменой удалить лишние значения и символы
- "Исходный URL" и "Новый URL" разделить символом "|" (old-url|new-url)
- сохранить "old-url|new-url" в текстовом файле
- удалить отключенные ссылки
- используя "Массовый импорт" импортировать текстовый файл
Отсутствует "Источник ссылки" (HTTP_REFERER)
"Источник ссылки" HTTP_REFERER
, если он передан в НТТР запросе, будет указан только в момент сохранения ссылки, когда "Сохранять ссылки" в плагине "Система - Перенаправления" включено.
Вдальнейшем не зависимо от состояния ссылки (включено или отключено) поле "Источник ссылки" HTTP_REFERER
обновляться не будет согласно программной логике плагина начиная со строки стр 293: /plugins/system/redirect/redirect.php
стр 293
// No redirect object was found so we create an entry in the redirect table
Слишком много битых ссылок
Выше упоминалось, что множественные мусорные ссылки 404 с "абракадаброй" в строке запроса могут генерироваться посещением сайта вредоносными сканнерами.
Чтобы избежать подобной ситуации, большинство вредоносных сканнеров можно блокировать по агенту пользователя (User-Agent) на уровне сервера или файла .htaccess
, при этом желательно иметь доступ к лог-файлам сервера для анализа происходящего.
В большинстве же случаев обычный пользователь, на обычном хостинге, не имеет возможности доступа к лог-файлам сервера и на такой случай в "Менеджер плагинов: Система - Перенаправления - Панель управления" имеется возможность "Исключить URL" и использовать "Регулярное выражение".
Например, добавив в исключение регулярное выражение "\/(\W).*
" (без кавычек) мы избавимся от ряда мусорных 404 ссылок вида:
/../.passwd
/../../etc/.group
/?filename=blablabla
/.=_?=^&*()#$@!@~1`;'';
Как вариант предотвращения перегрузки таблицы 404 ссылок, в настройках плагина "Система - Перенаправления" лишь иногда включать "Сохранять ссылки" на 1-2 недели, после чего отключать и проверять происхождение "битых" ссылок.
"Битые" ссылки по которым нет более чем 1-го перехода за продолжительный период времени (3-6 мес например) желательно удалять, что положительно скажется на производительности сайта.