Как Redirect Mirror игнорирует ошибки и не роняет сайт
Ошибки в настройках редиректов обычно роняют сайт с 500. Плагин Reemake Redirect Mirror спроектирован так, что ошибки изолируются и не влияют на работу проекта. Разбираем 4 уровня защиты.
Что обычно ломает сайт
4 типичные причины падения
Ошибка в .htaccess
Опечатка в RewriteRule — сайт падает с 500. Откатить без FTP сложно.
Невалидный URL
Ошибка в целевом URL создаёт цикл — сайт не открывается.
Плагин без try-catch
Необработанное исключение роняет ядро Joomla.
Несовместимость PHP
Код на старой версии PHP в Joomla 6 — fatal error.
4 уровня защиты
Как плагин изолирует ошибки
1. Try-catch на всём событии. Если внутри onAfterInitialise что-то падает, ошибка логируется, а сайт продолжает работать.
2. Валидация настроек. Невалидные домены и URL отбрасываются до использования. Плагин просто пропускает их.
3. Проверка циклов. Если редирект ведёт сам на себя, он не срабатывает. Цикл не создаётся.
4. Fallback. При критической ошибке плагин отключается на текущий запрос, но не блокирует сайт.
Код
Как выглядит защита в коде
public function onAfterInitialise(): void
{
try {
$this->handleRedirect();
} catch (\Throwable $e) {
$this->log($e->getMessage(), 'error');
return; // сайт работает дальше
}
}Благодаря этому подходу плагин безопасен даже на больших продакшен-сайтах с высокой нагрузкой. Ошибка в одном запросе не блокирует остальные.
Логирование
Что попадает в лог
Все проблемы пишутся в файл /administrator/logs/reemake_redirect.php: ошибки настроек, невалидные URL, попытки HTTP_HOST-атак. Логи не выбрасываются в интерфейс — пользователь не увидит технических деталей. Отключается одной галочкой в настройках плагина.
Вопросы и ответы
Частые вопросы
Ошибки видны в интерфейсе?
Нет. Только в логах — чтобы не пугать пользователей и не выдавать структуру сайта.
Что если лог переполнится?
Joomla автоматически ротирует логи. Также можно отключить логирование в продакшене.
Будет ли плагин писать в лог, если сайт под нагрузкой?
Нет. При высокой нагрузке логирование автоматически отключается для экономии I/O. Включается обратно при снижении.
Как проверить, что плагин не роняет сайт?
Специально сломайте одно правило (например, добавьте фигню в поле «Домены»). Сайт останется работать, а в логе появится ошибка валидации.
Нужен безопасный редирект?
Обсудим архитектуру, настроим плагин с изоляцией ошибок и логированием.
Обсудить задачу →




Messenger Max