15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
31.10.2024
1 +1

Як виправити помилку “Занадто багато перенаправлень”: Повний посібник з усунення неполадок

Помилка "Too Many Redirects" — також відома як redirect loop — є однією з найбільш розчаровуючих проблем, з якою можуть зіткнутися власник або адміністратор веб-сайту. Ваш браузер намагається слідувати ланцюжку HTTP перенаправлень, потрапляє в нескінченний цикл і врешті-решт здається, залишаючи відвідувачів перед сторінкою помилки замість вашого контенту.

У цьому комплексному посібнику ви дізнаєтесь точно, що викликає redirect loops, як систематично їх діагностувати та як застосувати правильне рішення — незалежно від того, чи ви запускаєте сайт WordPress, користувацький додаток на плані VPS Hosting або простий сайт на Shared Web Hosting.

Що таке помилка "Too Many Redirects"?

Коли браузер запитує URL, сервер може відповісти HTTP перенаправленням (коди стану 301, 302, 307 або 308), інструюючи браузер завантажити інший URL. Це нормальна та очікувана поведінка — наприклад, перенаправлення трафіку HTTP на HTTPS або перенаправлення example.com на www.example.com.

Redirect loop виникає, коли URL A перенаправляється на URL B, який перенаправляється назад на URL A (або через довший ланцюжок, який врешті-решт циклюється). Після досягнення порогу, визначеного браузером (зазвичай 10–20 перенаправлень), браузер припиняє запит і відображає:

> ERR_TOO_MANY_REDIRECTS (Chrome)

> The page isn't redirecting properly (Firefox)

> This webpage has a redirect loop (Safari/Edge)

Помилка однакова незалежно від браузера — відрізняється лише формулювання.

Що викликає помилку "Too Many Redirects"?

Розуміння основної причини є важливим перед спробою виправлення. Найпоширеніші винуватці включають:

1. Неправильно налаштовані правила перенаправлення

Найкласичніший приклад: example.com перенаправляється на www.example.com, а одночасно www.example.com перенаправляється назад на example.com. Кожне перенаправлення запускає інше, створюючи нескінченний цикл.

2. Неправильне налаштування перенаправлення HTTP на HTTPS

Якщо ваш сервер примушує HTTPS, але конфігурація SSL Certificates не застосована правильно, сервер може перенаправити HTTPS запит назад на HTTP, циклюючись нескінченно між двома протоколами.

Застарілі файли cookie або застійні дані кешованого перенаправлення, збережені в браузері, можуть спричинити його слідування старому, неправильному шляху перенаправлення — навіть після того, як проблема на стороні сервера була вирішена.

4. Неправильна конфігурація CMS (WordPress та інші)

У WordPress поля WordPress Address (URL) та Site Address (URL) у базі даних повинні відповідати вашій фактичній конфігурації домену. Невідповідність — наприклад, одне поле використовує http://example.com, а ваш сервер примушує https://www.example.com — є дуже поширеною причиною redirect loops.

5. Конфліктуючі плагіни

Плагіни кешування, безпеки та SEO можуть кожен реалізувати свою власну логіку перенаправлення. Коли два або більше плагінів намагаються одночасно керувати перенаправленнями, вони можуть конфліктувати та створювати цикли.

6. Конфлікти перенаправлення на рівні сервера

Перенаправлення, налаштовані в панелі керування хостингом, можуть конфліктувати з перенаправленнями, визначеними в .htaccess, nginx.conf або налаштуваннях CMS, що призводить до суперечливих інструкцій, які циклюються нескінченно.

Як виправити помилку "Too Many Redirects": крок за кроком

Пройдіть ці методи по порядку. Почніть з найпростіших виправлень перед переходом до змін на рівні сервера.

Перед тим, як торкатися будь-якої конфігурації сервера, виключіть проблему на стороні браузера. Застарілі файли cookie та кешовані відповіді перенаправлення є дивовижно частою причиною.

Google Chrome:

  1. Натисніть Ctrl+Shift+Delete (Windows/Linux) або Cmd+Shift+Delete (Mac)
  2. Встановіть часовий діапазон на All time
  3. Встановіть прапорці Cookies and other site data та Cached images and files
  4. Натисніть Clear data

Mozilla Firefox:

  1. Перейдіть до Settings → Privacy & Security
  2. У розділі Cookies and Site Data натисніть Clear Data
  3. Виберіть обидві опції та підтвердіть

Microsoft Edge / Safari:

Виконайте еквівалентні кроки в налаштуваннях конфіденційності кожного браузера.

Після очищення перезавантажте сторінку. Якщо помилка зникне, проблема була на стороні браузера. Якщо вона зберігається, перейдіть до наступного методу.

> Порада професіонала: Одразу протестуйте URL у приватному/інкогніто вікні. Режим інкогніто не використовує кешовані дані або файли cookie, тому якщо сайт завантажується правильно там, проблема визначено на стороні браузера.

Метод 2: Перевірте налаштування URL CMS (WordPress)

Якщо ви запускаєте WordPress, неправильні налаштування URL є однією з найпоширеніших причин redirect loops.

Через панель адміністратора WordPress:

  1. Перейдіть до Settings → General
  2. Переконайтесь, що обидва поля WordPress Address (URL) та Site Address (URL) ідентичні та використовують правильний протокол (http:// або https://) та піддомен (www або без www)
  3. Збережіть зміни

Якщо ви не можете отримати доступ до панелі адміністратора (оскільки redirect loop перешкоджає входу), відредагуйте файл wp-config.php безпосередньо через FTP або менеджер файлів хостингу:

define('WP_HOME', 'https://www.example.com');
define('WP_SITEURL', 'https://www.example.com');

Замініть example.com на ваш фактичний домен. Ці константи переважають значення бази даних і одразу розірвуть цикл.

Через базу даних WordPress (phpMyAdmin):

  1. Відкрийте phpMyAdmin та виберіть вашу базу даних WordPress
  2. Відкрийте таблицю wp_options
  3. Знайдіть рядки з option_name = siteurl та home
  4. Переконайтесь, що обидва значення точно відповідають вашому призначеному URL

Метод 3: Тимчасово вимкніть плагіни WordPress

Плагіни кешування, безпеки та SEO часто є винуватцями конфліктів перенаправлення. Найшвидший спосіб визначити винний плагін — вимкнути всі одразу.

Якщо ви можете отримати доступ до панелі адміністратора:

  1. Перейдіть до Plugins → Installed Plugins
  2. Виберіть усі плагіни та виберіть Deactivate з меню масових дій

Якщо ви не можете отримати доступ до панелі (redirect loop блокує вхід):

  1. Підключіться до вашого сервера через FTP або SSH
  2. Перейдіть до /wp-content/
  3. Перейменуйте папку plugins на щось на кшталт plugins-old
  4. WordPress автоматично вимкне всі плагіни

Перезавантажте сайт. Якщо помилка зникла, перейменуйте папку назад на plugins та повторно активуйте плагіни один за одним, тестуючи після кожної активації, щоб визначити конфліктуючий плагін.

Поширені винуватці включають: Really Simple SSL, Redirection, Yoast SEO, W3 Total Cache та Wordfence.

Метод 4: Перевірте ваш файл .htaccess (сервери Apache)

На серверах на основі Apache файл .htaccess керує переписуванням URL та правилами перенаправлення. Конфліктуючі або дублюючи правила тут є дуже поширеною причиною redirect loops.

Доступ до .htaccess:

  • Через FTP/SFTP: Файл знаходиться в кореневій папці вашого веб-сайту (наприклад, /public_html/.htaccess)
  • Через менеджер файлів cPanel: Увімкніть "Show Hidden Files", щоб побачити .htaccess

На що звернути увагу:

Шукайте директиви RewriteCond та RewriteRule. Шукайте правила, які можуть створити циклічну логіку — наприклад, правило, що перенаправляє на HTTPS, яке запускається навіть коли запит уже HTTPS.

Правильна конфігурація .htaccess без циклів для HTTPS + www:

RewriteEngine On

# Redirect HTTP to HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Redirect non-www to www (only when already on HTTPS)
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

Ключовий принцип: Кожне правило перенаправлення повинно включати умову, яка запобігає його запуску, коли запит уже відповідає цілі. Умова %{HTTPS} off гарантує, що перенаправлення HTTPS запускається лише для HTTP запитів — ніколи для HTTPS.

Якщо ви не впевнені в своїх правилах .htaccess, тимчасово перейменуйте файл на .htaccess.old. WordPress та більшість CMS автоматично регенерують чисту версію.

Метод 5: Перевірте перенаправлення на рівні сервера у вашій панелі керування

Багато панелей керування хостингом (cPanel, Plesk, DirectAdmin) дозволяють налаштовувати перенаправлення незалежно від вашого файлу .htaccess або CMS. Ці перенаправлення на рівні сервера можуть конфліктувати з перенаправленнями на рівні додатку.

Кроки:

  1. Увійдіть до панелі керування хостингом
  2. Шукайте розділ Redirects (у cPanel він знаходиться під Domains → Redirects)
  3. Переглядайте всі налаштовані перенаправлення
  4. Видаліть будь-які, які дублюють або суперечать перенаправленням, вже оброблюваним вашим CMS або .htaccess

Якщо ви керуєте високонавантаженим сайтом на Dedicated Server, також перевірте файли конфігурації віртуального хосту Nginx або Apache на предмет директив перенаправлення, які можуть конфліктувати з правилами на рівні додатку.

Метод 6: Перевірте конфігурацію SSL/HTTPS

Якщо redirect loop виникає лише на URL https://, проблема може бути в тому, як налаштовані ваш SSL сертифікат та примус HTTPS.

Поширений сценарій: У вашій панелі керування хостингом увімкнено "Force HTTPS", І ваш .htaccess також містить перенаправлення HTTP на HTTPS, І ваш CMS має активний плагін HTTPS. Усі три запускаються одночасно та конфліктують.

Виправлення: Виберіть один рівень для обробки перенаправлення HTTPS та вимкніть його у всіх інших. Рекомендований підхід — обробляти його на рівні сервера (конфігурація віртуального хосту або панель керування) та видалити його з .htaccess та будь-яких плагінів.

Переконайтесь, що ваш SSL сертифікат дійсний та правильно встановлений. Закінчений або неправильно налаштований сертифікат іноді може спричинити неочікувану поведінку перенаправлення. Якщо вам потрібен новий сертифікат, SSL Certificates від AlexHost легко розгортаються та обслуговуються.

Перевірка виправлення

Після застосування будь-якого з наведених вище виправлень:

  1. Знову очистіть кеш браузера та файли cookie (зміни не будуть видимі, якщо старі перенаправлення кешовані)
  2. Протестуйте в приватному/інкогніто вікні, щоб підтвердити, що виправлення працює без будь-яких кешованих даних
  3. Використовуйте онлайн-інструмент перевірки перенаправлення, такий як Redirect Checker або httpstatus.io, щоб відстежити повний ланцюжок перенаправлення та підтвердити, що циклів немає
  4. Протестуйте кілька варіантів URL: example.com, www.example.com, http://example.com та https://www.example.com — усі чотири повинні розв’язуватися на один канонічний URL без більш ніж одного або двох перенаправлень

Як запобігти redirect loops у майбутньому

Виправлення redirect loop — це одне, а запобігання його повторенню — інше. Дотримуйтесь цих найкращих практик:

Встановіть один канонічний URL

Визначте остаточно одну канонічну форму вашого домену: example.com або www.example.com. Налаштуйте всі перенаправлення на всіх рівнях (конфігурація сервера, .htaccess, налаштування CMS, плагі

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати