Как перенести WordPress с HTTPS на локальный сервер?

30 июн. 2017 г., 02:52:30
Просмотры: 15.5K
Голосов: 8

Я перенёс сайт с рабочего сервера на локальный, используя плагин WP Migrate DB. Раньше я делал это несколько раз, и всё работало нормально. Однако в этот раз я перенёс сайт с HTTPS-соединения, и теперь не могу зайти на сайт на своём локальном сервере. Получаю следующую ошибку:

Этот сайт не может обеспечить безопасное соединение

localhost отправил неверный ответ.
ERR_SSL_PROTOCOL_ERROR

Я предполагаю, что в бэкенде WordPress нужно что-то изменить либо в базе данных, либо в разделе Консоль > Настройки > Общие.

Но сейчас я не могу зайти на сайт, поэтому, думаю, придётся делать это через базу данных?

Любая помощь будет очень кстати. Я не совсем понимаю, с чего начать.

Пол.

0
Все ответы на вопрос 5
4

Это происходит потому, что значения site_url и homeurl вашей оригинальной установки в базе данных настроены на HTTPS, поэтому вы не можете получить доступ к своему сайту на localhost, если не:

  1. Измените эти значения на не-SSL
  2. Установите 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-файла.

30 июн. 2017 г. 03:45:10
Комментарии

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

pjk_ok pjk_ok
30 июн. 2017 г. 05:06:47

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

xvilo xvilo
30 июн. 2017 г. 09:49:45

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

Dunot Dunot
7 авг. 2018 г. 10:15:33

@Dunot отключение simple SSL сработало у меня. Спасибо

RTXGamer RTXGamer
10 окт. 2021 г. 16:52:42
0

В таблице wp_options вы найдёте две строки, содержащие URL сайта. Измените эти два значения.

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

Отличный плагин, который избавляет от рутинной работы по перемещению (клонированию) сайта. Иногда мне приходится выполнять восстановление дважды (первая попытка может завершиться неудачей по непонятной причине), но повторная попытка обычно проходит успешно. Все данные, пользователи, контент и прочее переносятся идеально.

30 июн. 2017 г. 03:40:10
0

В моем случае ситуация отличалась от других ответов. Моя база данных была правильно настроена на http://localhost, но у меня был установлен плагин для управления SSL (Really Simple SSL).

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

А чтобы получить доступ к /wp-admin без SSL, нужно изменить файл /wp-config.php и установить FORCE_SSL_ADMIN в значение false.

23 дек. 2019 г. 10:45:44
4

Я столкнулся с этой проблемой. Вот что я сделал:

  1. Удалил плагин wp-security
  2. Убрал определение принудительного SSL в wp-config
  3. Очистил кеш браузера
  4. Изменил значения site_url и home URL в таблице wp-options
  5. Обновил .htaccess, заменив его стандартным .htaccess для WordPress

Ничего не помогло.

В конечном итоге сработало следующее:

Полное удаление файла .htaccess решило проблему.

Надеюсь, это поможет кому-то избавиться от подобной проблемы.

8 июн. 2020 г. 07:12:26
Комментарии

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

neoswf neoswf
9 февр. 2022 г. 04:36:09

Рад, что помогло.

Arman H Arman H
9 февр. 2022 г. 07:04:17

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

neoswf neoswf
9 февр. 2022 г. 14:37:49

добро пожаловать, братан :) .. счастливого кодинга <3

Arman H Arman H
9 февр. 2022 г. 18:27:14
1

Это можно быстро сделать с помощью двух констант, предоставляемых WordPress.

Добавьте их в начало файла wp-config.php после открывающих тегов <?php.

define ('WP_HOME', 'http://localhost/wordpress-folder-name' );
define ('WP_SITEURL', 'http://localhost/wordpress-folder-name' );
13 мая 2018 г. 21:44:53
Комментарии

У меня была именно эта константа, которая добавляла https к URL!!!!! Я исправил это, и проблема решилась!

neoswf neoswf
9 февр. 2022 г. 14:53:29