Ошибка слишком большого количества перенаправлений при изменении базового URL

Вопрос или проблема

Недавно мне довелось управлять блогом на WordPress (поэтому я не знаком с тем, что было сделано до этого), и чтобы начать вносить изменения, я создал локальный docker compose как песочницу. Когда я скопировал содержимое (файлы WordPress + базу данных mysql), сайт работал хорошо, за исключением ссылок, которые не перенаправляли на локальную версию, а на производственную. Поэтому, чтобы они заработали (так как я не могу получить доступ к администрированию), я заменил в таблице wp_options значения site_url и home на локальный путь (http://192.168.99.100:33080). Однако, после этого сайт больше не загружается и появляется ошибка слишком большого количества перенаправлений. Кто-нибудь знает, как это исправить?

Я также попробовал, вместо того чтобы вносить изменения в базу данных, написать их в файл wp-config.php (согласно этой инструкции), но ничего не изменилось.

Я использую WordPress 4.9.8 в HTTP на порту 33080, а Dockerfile контейнера выглядит так:

FROM php:5.6.35-apache-jessie

RUN docker-php-ext-install mbstring mysqli pdo pdo_mysql
RUN a2enmod rewrite
RUN echo 'log_errors = On\nerror_log = /dev/stderr' >> /usr/local/etc/php/php.ini

Я совершенно нов в среде WordPress, так что если есть что-то, что я должен был сделать и не упомянул об этом, я этого не сделал. Спасибо.

ОБНОВЛЕНИЕ:

Я нашел, в чем проблема. Несмотря на то, что написано там, кажется, что WordPress, который я установил, не принимает номера портов, отличные от 80. На самом деле, я попробовал изменить порт в docker-compose с 33080 на 80, и он начал работать нормально. В базе данных для siteurl и home я указал только http://192.168.99.100. Я все еще не знаю, что делать, чтобы это работало с нестандартным портом.

Вы пробовали определить WP_SITEURL и WP_HOME, чтобы указать правильный URL? Это “перезаписывает” настройки базы данных.

https://codex.wordpress.org/Editing_wp-config.php#WP_SITEURL

Если это не сработает, следующим шагом следует попробовать метод ПЕРЕНОСА

https://codex.wordpress.org/Changing_The_Site_URL#Relocate_method

Ответ или решение

Ошибка "слишком много перенаправлений" (Too Many Redirects) при изменении базового URL в WordPress может быть вызвана несколькими факторами, особенно когда вы работаете в среде Docker и пытаетесь настроить локальную версию сайта. Давайте рассмотрим возможные причины проблемы и подходы к ее решению.

Причины ошибки

  1. Неправильная конфигурация URL:
    После копирования файлов WordPress и базы данных на локальную машину, необходимо убедиться, что значения, хранящиеся в таблице wp_options, корректно указывают на ваш локальный адрес. Если вы укажете адрес с портом (например, http://192.168.99.100:33080), это может вызвать конфликты, если WordPress не поддерживает работу с портами, отличными от 80.

  2. WP_SITEURL и WP_HOME:
    Если вы изменили значения siteurl и home в базе данных, но WordPress продолжает использовать старые настройки, это может означать, что настройки в файле wp-config.php имеют приоритет. Определение этих параметров (например, define('WP_HOME', 'http://192.168.99.100:33080');) в wp-config.php может помочь переопределить URL.

  3. Конфликтующие редиректы:
    Если у вас настроены правила перенаправления (например, через файл .htaccess или сами настройки сервера), это также может привести к циклическим перенаправлениям. Для тестирования можно временно переименовать файл .htaccess и проверить поведение.

  4. Кеширование:
    Некоторые плагины кеширования могут продолжать использовать старые URL, даже после их обновления. Попробуйте отключить плагины кеширования, если они есть, и очистить кеш.

Решение проблемы

  1. Убедитесь в правильной настройке базы данных:
    Проверьте значения siteurl и home в таблице wp_options. Если вы используете порт, попробуйте сначала удалить его и протестировать работу с простым URL.

  2. Изменение wp-config.php:
    Добавьте следующие строки в файл wp-config.php:

    define('WP_HOME', 'http://192.168.99.100:33080');
    define('WP_SITEURL', 'http://192.168.99.100:33080');

    Это позволит WordPress игнорировать настройки из базы данных.

  3. Используйте метод RELocate:
    Вы также можете использовать метод перемещения (Relocate), как описано в документации WordPress. Для этого добавьте следующее в файл wp-config.php:

    define('RELOCATING', true);
  4. Проверка конфигурации сервера:
    Убедитесь, что ваша конфигурация Docker и веб-сервера не создает проблем с перенаправлениями. Попробуйте временно удалить или изменить настройки перенаправления в файле .htaccess, чтобы проверить, является ли это источником проблемы.

  5. Журнал ошибок:
    Проверьте журналы ошибок веб-сервера и PHP для выявления более точных причин проблемы. Ваша конфигурация Docker уже настроена на логирование ошибок, что поможет в отладке.

Заключение

Работа с WordPress в среде Docker и изменение базового URL может быть сложной задачей для новичков. Однако, следуя этим рекомендациям, вы сможете устранить ошибку "слишком много перенаправлений". Если ни один из предложенных методов не поможет, рекомендуется проверить документацию WordPress и поддерживаемые плагины, так как они могут вносить дополнительные изменения в конфигурацию и поведение сайта.

Оцените материал
Добавить комментарий

Капча загружается...