Панели хостинга Linux; Nginx / Apache / PHP-FPM (в зависимости от панели)

Панель управления хостингом: перенаправление работает для главной, но создаёт цикл в каталоге

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Если главная страница открывается по HTTPS, но /catalog/ или /admin/ многократно перенаправляются, причина нередко в двух слоях правил: настройках домена в панели и правилах приложения либо .htaccess. Не следует отключать HTTPS для всего сайта.

В этой статье
  1. Симптом и границы применимости
  2. Возможные причины и признаки
  3. Пошаговая диагностика и исправление
  4. Проверка результата
  5. Если проблема осталась
  6. Безопасный откат

#Симптом и границы применимости

Если главная страница открывается по HTTPS, но /catalog/ или /admin/ многократно перенаправляются, причина нередко в двух слоях правил: настройках домена в панели и правилах приложения либо .htaccess. Не следует отключать HTTPS для всего сайта.

Эта инструкция относится к конкретному сайту в панели управления хостингом, когда его обслуживают Nginx, Apache, PHP-FPM или их сочетание. Названия разделов и доступность SSH зависят от установленной панели и прав пользователя; шаги, которых нет в вашем интерфейсе, выполняет администратор сервера.

#Возможные причины и признаки

Возможная причинаКак узнатьЧто делать
Два независимых правила перенаправленияВ панели включён переход HTTP→HTTPS, а приложение считает запрос незащищённымГлавная 200, каталог получает повторяющиеся 301/302Проверить цепочку и доверенное определение исходной схемы
Переписывание пути каталогаПравило rewrite или .htaccess добавляет/убирает завершающий слешLocation попеременно меняется между /catalog и /catalog/Исправить лишь конфликтующее правило
Обратный проксиПередний Nginx принимает HTTPS, внутренний Apache или PHP видит HTTPВ Location повторяется https://.../catalog/Проверить передачу схемы из доверенного прокси

#Пошаговая диагностика и исправление

  1. Зафиксируйте условия ошибкиВ приватном окне браузера откройте главную страницу и затем конкретный URL каталога. Запишите точный адрес, время, код ответа и наличие CDN. Не удаляйте весь .htaccess и не отключайте SSL ради проверки.
  1. Посмотрите последовательность ответовНа собственном компьютере или сервере выполните запрос к одному проблемному пути без следования перенаправлениям; посмотрите поле Location. После этого используйте ограниченное следование с максимумом перенаправлений. Если Location возвращается к тому же URL, цикл подтверждён.
  2. Замените example.com на свой домен
    Linux · Терминал (Bash)Команда
    Замените example.com на свой домен. Без прав администратора; -I показывает заголовки, -L следует перенаправлениям, --max-redirs ограничивает их число.
    curl -sS -I https://example.com/catalog/
    curl -sS -I -L --max-redirs 6 https://example.com/catalog/
  1. Найдите оба источника настроекВ панели откройте управление нужным доменом и проверьте правила перенаправления и режим HTTPS. Отдельно посмотрите .htaccess корня и каталога, а также параметры базового адреса в самой CMS. Запишите, на каком уровне выполняется переход, и сохраните копию каждого изменяемого файла.
  1. Проверьте схему за проксиЕсли перед Apache стоит Nginx или CDN, сопоставьте адрес, который видит пользователь, с заголовками запроса до приложения. Убедитесь, что приложение принимает X-Forwarded-Proto только от доверенного прокси; не делайте такой заголовок общедоверенным для прямых интернет-запросов.
  1. Устраните только подтверждённый конфликтОставьте один понятный переход на HTTPS и согласованную обработку завершающего слеша. Если проблема в CMS, исправляйте настройку базового URL по её документации; если в правиле каталога — редактируйте только это правило. Не заменяйте все директивы генератора панели вручную.
  1. Проверьте конфигурацию перед применениемДля Nginx проверьте синтаксис. Если используется Apache — проверьте его отдельно. Дальнейшую загрузку конфигурации выполняйте через панель или штатный механизм конкретного сервера только после успешной проверки.
    Linux · Терминал (Bash)КомандаНужен sudo
    SSH, права администратора. Используйте команду только для установленного веб-сервера; на некоторых системах имя apachectl. Команды лишь проверяют синтаксис.
    sudo nginx -t
    sudo apache2ctl -t
  1. Сравните четыре адресаОткройте http://домен/, https://домен/, /catalog и /catalog/. Убедитесь, что все варианты приходят к одному конечному HTTPS-адресу за ограниченное число переходов. Если снова возникает цикл, верните сохранённое правило и изучите Location на каждом уровне.

#Проверка результата

Каждый из четырёх URL заканчивается страницей 200 либо ожидаемым 403/404 без бесконечного цикла; принудительный HTTPS сохранён.

#Если проблема осталась

Если Location формируется только CMS — проверьте её доверие к обратному прокси и базовый URL; если циклы начинаются перед веб-сервером — обратитесь к правилам CDN и панели.

#Безопасный откат

Если после изменения ошибка усилилась, верните сохранённое значение только изменённого параметра и повторно проверьте конфигурацию используемого веб-сервера до применения. Не возвращайте всю базу или весь сервер из резервной копии, если достаточно откатить одну настройку. При отсутствии доступа к нужному уровню обратитесь к администратору с точными временем, адресом, кодом ответа и обезличенными фрагментами журналов.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.