#Симптом и границы применимости
Если главная страница открывается по 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/ | Проверить передачу схемы из доверенного прокси |
#Пошаговая диагностика и исправление
- Зафиксируйте условия ошибкиВ приватном окне браузера откройте главную страницу и затем конкретный URL каталога. Запишите точный адрес, время, код ответа и наличие CDN. Не удаляйте весь .htaccess и не отключайте SSL ради проверки.
- Посмотрите последовательность ответовНа собственном компьютере или сервере выполните запрос к одному проблемному пути без следования перенаправлениям; посмотрите поле Location. После этого используйте ограниченное следование с максимумом перенаправлений. Если Location возвращается к тому же URL, цикл подтверждён.
- Замените 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/
- Найдите оба источника настроекВ панели откройте управление нужным доменом и проверьте правила перенаправления и режим HTTPS. Отдельно посмотрите .htaccess корня и каталога, а также параметры базового адреса в самой CMS. Запишите, на каком уровне выполняется переход, и сохраните копию каждого изменяемого файла.
- Проверьте схему за проксиЕсли перед Apache стоит Nginx или CDN, сопоставьте адрес, который видит пользователь, с заголовками запроса до приложения. Убедитесь, что приложение принимает X-Forwarded-Proto только от доверенного прокси; не делайте такой заголовок общедоверенным для прямых интернет-запросов.
- Устраните только подтверждённый конфликтОставьте один понятный переход на HTTPS и согласованную обработку завершающего слеша. Если проблема в CMS, исправляйте настройку базового URL по её документации; если в правиле каталога — редактируйте только это правило. Не заменяйте все директивы генератора панели вручную.
- Проверьте конфигурацию перед применениемДля Nginx проверьте синтаксис. Если используется Apache — проверьте его отдельно. Дальнейшую загрузку конфигурации выполняйте через панель или штатный механизм конкретного сервера только после успешной проверки.Linux · Терминал (Bash)КомандаНужен sudoSSH, права администратора. Используйте команду только для установленного веб-сервера; на некоторых системах имя apachectl. Команды лишь проверяют синтаксис.
sudo nginx -tsudo apache2ctl -t
- Сравните четыре адресаОткройте http://домен/, https://домен/, /catalog и /catalog/. Убедитесь, что все варианты приходят к одному конечному HTTPS-адресу за ограниченное число переходов. Если снова возникает цикл, верните сохранённое правило и изучите Location на каждом уровне.
#Проверка результата
Каждый из четырёх URL заканчивается страницей 200 либо ожидаемым 403/404 без бесконечного цикла; принудительный HTTPS сохранён.
#Если проблема осталась
Если Location формируется только CMS — проверьте её доверие к обратному прокси и базовый URL; если циклы начинаются перед веб-сервером — обратитесь к правилам CDN и панели.
#Безопасный откат
Если после изменения ошибка усилилась, верните сохранённое значение только изменённого параметра и повторно проверьте конфигурацию используемого веб-сервера до применения. Не возвращайте всю базу или весь сервер из резервной копии, если достаточно откатить одну настройку. При отсутствии доступа к нужному уровню обратитесь к администратору с точными временем, адресом, кодом ответа и обезличенными фрагментами журналов.