Отключение HTTPS и использование HTTP в WordPress

27 мар. 2016 г., 21:06:34
Просмотры: 81.4K
Голосов: 10

Сегодня я синхронизировал базу данных сайта разработки с базой данных продакшн-сайта.

Теперь мой сайт разработки выдает ошибку "404 Not Found". URL начинается с HTTPS, и через текст HTTPS идет красная черта. Страница 404 говорит "The server can not find the requested page: dev.greenbee-web.com/ilaimh/wp-admin/ (port 443). Apache Server at dev.greenbee-web.com Port 443".

Я не знал, что продакшн-сайт использует HTTPS (я являюсь сотрудником, и я не единственный, кто работает над этим сайтом). Это заставило сайт разработки использовать HTTPS, но я хочу, чтобы он использовал HTTP. Я не могу найти, где в конфигурационных файлах WordPress я могу вернуть сайт разработки к использованию HTTP.

Есть ли какая-то настройка в wp-config, которая заставляет мой сайт разработки использовать HTTPS? Если не в wp-config, где находится настройка, которая заставляет сайт использовать HTTPS?

Спасибо

3
Комментарии

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

Mark Kaplun Mark Kaplun
27 мар. 2016 г. 21:34:10

привет... Сначала проверьте глобальные настройки WordPress (поля URL). После этого в большинстве случаев у вас есть один файл (а также некоторые плагины), которые могут быть связаны с вашей проблемой: в файле .htaccess, расположенном в основной директории вашего сайта WordPress, вам нужно найти что-то вроде RewriteRule ^(.*)$ https://www.yoursite.com/$1 [R,L]... Также некоторые плагины безопасности или "SSL" плагины могут быть причиной.

LoicTheAztec LoicTheAztec
28 мар. 2016 г. 01:54:44

@MarkKaplun - это неприемлемый ответ на вопрос. Пожалуйста, объясните подробно, как я могу установить действительный сертификат для сервера в локальной сети с немаршрутизируемым IP, или установить действительный SSL сертификат на публичный сервер для IP-адреса. При переходе с разработки на боевой сервер вам в любом случае придется менять все URL.

Craig Jacobs Craig Jacobs
27 янв. 2019 г. 21:23:41
Все ответы на вопрос 5
2
11

Необходимо выполнить 2 действия.

Если вы используете сервер Apache, перейдите в файл .htaccess и измените настройки Rewrite и RewriteBase на:

RewriteEngine On

RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Если вы используете Nginx, добавьте подобную конфигурацию:

server {
   listen 80 443;
   server_name example.com;
   # настройки ssl
   return 301 https://example.com$request_uri;
}

Это перенаправит трафик с https на http.

Затем через phpmyadmin или другой инструмент зайдите в базу данных, найдите таблицу wp_options и измените значения siteurl и home с https://example.com на http://example.com.

Очистите кеш и проверьте снова. Сайт должен работать без проблем. Если сайт продолжает запрашивать SSL, проверьте файл wp-config.php на наличие строки:

define('FORCE_SSL_ADMIN', true);

и измените значение 'true' на 'false'.

Надеюсь, это поможет решить проблему.

29 мар. 2016 г. 11:47:02
Комментарии

В моем случае помог ваш последний совет — закомментировать эти строки: //define( 'FORCE_SSL_LOGIN', 1 ); //define( 'FORCE_SSL_ADMIN', 1 );

TARKUS TARKUS
17 июл. 2018 г. 01:37:15

для IIS, что я могу сделать, чтобы отключить http? Я пробовал добавить define('FORCE_SSL_ADMIN', true);, но это не сработало

Malcolm Salvador Malcolm Salvador
13 мар. 2020 г. 20:14:14
0

Здесь есть несколько факторов.

Во-первых, вам стоит проверить настройки сайта в таблице wp_options (или wp_X_options если у вас мультисайт), особенно значения:

  • home
  • siteurl

Другие таблицы, которые стоит проверить:

  • wp_blogs
  • wp_domain_mapping
  • wp_options
  • wp_site
  • wp_sitemeta

Я не знаю, какую систему вы используете для синхронизации dev базы с prod, но у нас есть SQL скрипт, который мы запускаем после клонирования части prod базы данных.

UPDATE wp_dev.wp_blogs SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_domain_mapping SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_options SET option_value = REPLACE(option_value, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_site SET domain = REPLACE(domain, "https://produrl.com", "http://devurl.com");
UPDATE wp_dev.wp_sitemeta SET meta_value = REPLACE(meta_value, "https://produrl.com", "http://devurl.com");

Замените wp_dev на название вашей локальной базы данных, а produrl.com и devurl.com на соответствующие URL. Обратите внимание, что этот скрипт меняет внутренние URL с HTTPS на HTTP.

Наконец, вам может понадобиться изменить локальный конфиг WordPress и обновить эти две настройки:

define('FORCE_SSL_LOGIN', false);
define('FORCE_SSL_ADMIN', false);
16 окт. 2018 г. 01:44:59
0

Спасибо, Лоик.

Я использую BackupBuddy для копирования моих активных сайтов и восстановления на WAMP. Один из сайтов постоянно пытался использовать HTTPS. Я пытался установить сертификат на локальном WAMP, но безрезультатно.

Я проверил директорию локально восстановленного сайта и удалил папку simple ssl.

Бум. Теперь всё работает и остается на HTTP.

Чёрт, это было слишком просто. Ещё раз спасибо.

4 мар. 2019 г. 01:07:38
2

Если балансировщик нагрузки завершает SSL (https), тогда WordPress будет получать HTTP-трафик и перенаправлять на HTTPS, несмотря на то, что трафик к балансировщику идет по HTTPS, что приводит к бесконечным перенаправлениям.

Чтобы решить эту проблему, я добавляю в свой wp-config.php:

  $_SERVER['HTTPS'] = 'on';

Или немного более сложный вариант (для кастомных установок):

  if (getenv('use_ssl')) {
    $_SERVER['HTTPS'] = 'on';
  }
24 июн. 2022 г. 01:10:54
Комментарии

Это верно, и в документации WordPress также есть заметка об этом: Администрирование через SSL. Там проверяется общий заголовок, устанавливаемый балансировщиком нагрузки.

Rup Rup
24 июн. 2022 г. 03:04:04

(Хотя я не уверен, что именно об этом спрашивается в данном вопросе.)

Rup Rup
24 июн. 2022 г. 03:04:18
4
-3

Ваша среда разработки и промежуточная среда должны максимально соответствовать рабочей среде. Неиспользование того же протокола – это очень серьезное отклонение, которое даже не может быть оправдано.

Поскольку это ваша организация, просто установите тот же сертификат в вашей среде разработки, или, если он привязан к определенному IP по какой-то причине, сгенерируйте новый для среды разработки.

5 сент. 2017 г. 11:34:57
Комментарии

Минусую, потому что это не отвечает на вопрос.

naomi naomi
26 февр. 2020 г. 16:13:04

@naomi Я искренне удивлен, что в наше время, когда все перешло на HTTPS, есть предложения о том, что стоит пытаться поддерживать HTTP. Единственно верный ответ — исправить среду разработки.

Mark Kaplun Mark Kaplun
2 мар. 2020 г. 16:07:53

Вопрос был о том, как остановить принудительное использование SSL в WP. Я столкнулся с этой проблемой при работе с локальными сайтами на своем ноутбуке.

naomi naomi
2 мар. 2020 г. 17:31:46

Да, локальная разработка страдает из-за использования HTTPS, но если вы не используете HTTPS, как вы узнаете, что ваши ресурсы загружаются правильно? Если, как у автора вопроса, у вас есть доверие владельца сайта, вы можете попросить его сертификат и правильно настроить домен и сертификат на своем ноутбуке

Mark Kaplun Mark Kaplun
3 мар. 2020 г. 18:52:23