Как перенести WordPress с HTTPS на локальный сервер?
Я перенёс сайт с рабочего сервера на локальный, используя плагин WP Migrate DB. Раньше я делал это несколько раз, и всё работало нормально. Однако в этот раз я перенёс сайт с HTTPS-соединения, и теперь не могу зайти на сайт на своём локальном сервере. Получаю следующую ошибку:
Этот сайт не может обеспечить безопасное соединение
localhost отправил неверный ответ.
ERR_SSL_PROTOCOL_ERROR
Я предполагаю, что в бэкенде WordPress нужно что-то изменить либо в базе данных, либо в разделе Консоль > Настройки > Общие.
Но сейчас я не могу зайти на сайт, поэтому, думаю, придётся делать это через базу данных?
Любая помощь будет очень кстати. Я не совсем понимаю, с чего начать.
Пол.

Это происходит потому, что значения site_url
и homeurl
вашей оригинальной установки в базе данных настроены на HTTPS, поэтому вы не можете получить доступ к своему сайту на localhost, если не:
- Измените эти значения на не-SSL
- Установите SSL-сертификат на localhost
Я объясню только первый вариант, так как установка сертификата выходит за рамки этого сообщества.
Для этого у вас есть 2 варианта.
Прямое редактирование скачанного SQL-файла
Откройте экспорт MySQL, который вы только что скачали с сервера. Найдите wp_options
, и вы увидите строку в вашей базе данных, похожую на эту:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
Две строки ниже — это siteurl
и homeurl
. Измените их значения на http://localhost/
. Обратите внимание на кавычки и запятые! Таким образом, первые три строки будут выглядеть так:
INSERT INTO `wp_options` (`option_id`, `option_name`, `option_value`, `autoload`) VALUES
(1, 'siteurl', 'http://localhost/', 'yes'),
(2, 'home', 'http://localhost', 'yes'),
Затем загрузите ваш SQL-файл. Готово.
Обновление значений через PHPMyAdmin
Если у вас установлен PHPMyAdmin на localhost, или у вас достаточно знаний для прямого обновления таблиц через командную строку, используйте этот метод.
Войдите в свою базу данных через PHPMyAdmin. В левом меню навигации выберите нужную базу данных. Теперь выберите таблицу wp_options
в правой части.
Опять же, первые два значения будут siteurl
и homeurl
, которые вы можете просто обновить на http://localhost/
, не беспокоясь о возможных ошибках при редактировании оригинального SQL-файла.

Спасибо, Джек, я сделал по второму варианту из ваших описаний, и теперь всё работает. Благодарю за помощь.

Поиск и замена с помощью скрипта SearchReplaceDB2 от interconnetit для замены https на http тоже будет хорошим вариантом. Это также можно сделать с помощью wp-cli.

Кроме случая, описанного здесь, вам следует переименовать wp-content/plugins/really-simple-ssl, чтобы отключить его.

В таблице wp_options вы найдёте две строки, содержащие URL сайта. Измените эти два значения.
Однако вам может потребоваться скорректировать медиафайлы и другие внутренние ссылки. Именно поэтому я доверяю всю работу отличному плагину WP Clone (https://wordpress.org/plugins/wp-clone-by-wp-academy/). Вам нужно просто установить плагин на исходной системе, создать резервную копию, затем установить плагин на целевой системе и восстановить данные.
Отличный плагин, который избавляет от рутинной работы по перемещению (клонированию) сайта. Иногда мне приходится выполнять восстановление дважды (первая попытка может завершиться неудачей по непонятной причине), но повторная попытка обычно проходит успешно. Все данные, пользователи, контент и прочее переносятся идеально.

В моем случае ситуация отличалась от других ответов. Моя база данных была правильно настроена на http://localhost
, но у меня был установлен плагин для управления SSL (Really Simple SSL).
Поэтому я переименовал папку /wp-content/plugins/really-simple-ssl
во что-то другое, и это сработало.
А чтобы получить доступ к /wp-admin
без SSL, нужно изменить файл /wp-config.php
и установить FORCE_SSL_ADMIN
в значение false
.

Я столкнулся с этой проблемой. Вот что я сделал:
- Удалил плагин wp-security
- Убрал определение принудительного SSL в wp-config
- Очистил кеш браузера
- Изменил значения site_url и home URL в таблице wp-options
- Обновил .htaccess, заменив его стандартным .htaccess для WordPress
Ничего не помогло.
В конечном итоге сработало следующее:
Полное удаление файла .htaccess решило проблему.
Надеюсь, это поможет кому-то избавиться от подобной проблемы.

Огромное спасибо!!!! Ваш ответ должен быть сразу на первом месте! Вы спасли мою задницу, чувак!!!! Спасибо!!!!!!

@armah - на самом деле проблему вызвали конкретные правила внутри файла. Их комментирование решило проблему. Спасибо за помощь!

Это можно быстро сделать с помощью двух констант, предоставляемых WordPress.
Добавьте их в начало файла wp-config.php
после открывающих тегов <?php
.
define ('WP_HOME', 'http://localhost/wordpress-folder-name' );
define ('WP_SITEURL', 'http://localhost/wordpress-folder-name' );
