Проблемы с HTTPS в WordPress: CSS и JS не загружаются, админка не работает. Как исправить?

3 февр. 2019 г., 22:04:34
Просмотры: 14.4K
Голосов: 2

Недавно я собрал сервер LAMP и установил на него WordPress. Подключил его к интернету через reverse SSH туннель с использованием serveo.net.

Я решил добавить SSL, и остальная часть сайта работает нормально, но WordPress ломается при попытке использовать SSL.

Я зашел в общие настройки и изменил URL-адреса с HTTP на HTTPS, но когда я загружаю страницы, в исходном коде URL-адреса CSS и JavaScript используют HTTP вместо HTTPS, поэтому они не загружаются.

Затем часть wp-admin вообще перестает загружаться. Как это исправить?

Я просмотрел множество постов о людях с похожими проблемами, но ни один из них не помог.

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

Я совсем новичок в разработке на WordPress. Я собирался добавить SSL-сертификат и для этого зашел в Общие настройки, добавил https и убрал http, после чего сохранил изменения. Теперь я даже не могу войти в админку WordPress. Пожалуйста, помогите мне как можно скорее.

ashutosh batta ashutosh batta
1 сент. 2020 г. 04:43:42

@ashutoshbatta Если у вас новый вопрос, пожалуйста, задайте его, нажав кнопку Задать вопрос. Приложите ссылку на этот вопрос, если это поможет прояснить контекст. - Из обзора

bueltge bueltge
1 сент. 2020 г. 11:13:09
Все ответы на вопрос 4
7

Проверьте два момента:

  • В таблице wp-options URL сайта (в двух местах) должен быть полным, например https://www.example.com.
  • Проверьте файл .htaccess сайта на правильность переадресации с http на https.

Для правила в .htaccess в большинстве случаев подходит следующее:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Затем проверьте файлы темы, чтобы убедиться, что все ссылки на CSS/JS используют протокол https, а не http. В большинстве хорошо написанных тем используются относительные, а не абсолютные ссылки на подключаемые файлы.

Также возможно, что какой-то плагин указывает http вместо https.

Используйте вкладку Network в Инструментах разработчика (обычно F12 в вашем браузере), чтобы просмотреть каждый запрос и определить его источник. Если запрос идет к папке плагина, проверьте код в ней.

3 февр. 2019 г. 23:54:14
Комментарии

Я использую стандартную тему Twenty Nineteen. Записи в базе данных правильные, но в секции head есть такие элементы, как <link rel='stylesheet' id='wp-block-library-css' href='http://jtjumper.serveo.net/wp/wp-includes/css/dist/block-library/style.min.css?ver=5.0.3' type='text/css' media='all' /> <link rel='stylesheet' id='wp-block-library-theme-css' href='http://jtjumper.serveo.net/wp/wp-includes/css/dist/block-library/theme.min.css?ver=5.0.3' type='text/css' media='all' />

John Tippin John Tippin
4 февр. 2019 г. 01:29:50

Если я посмотрю исходный код страницы на моем тестовом (хостинговом) сайте с темой 2019, то href для этих элементов включает протокол https:. И у меня есть htaccess, как показано в моем ответе. И моя таблица wp-options содержит https://www.example.com, а не просто www.example.com. Возможно, у вас не так настроено?

Rick Hellewell Rick Hellewell
4 февр. 2019 г. 01:39:24

В комментариях недостаточно места для исходного кода, но вот ссылка на страницу: https://jtjumper.serveo.net/wp/ В моей таблице wp-options указаны оба варианта, и оба используют https

John Tippin John Tippin
4 февр. 2019 г. 02:06:45

У вас есть какой-нибудь плагин кеширования? Ваш htaccess перенаправляет http на https?

Rick Hellewell Rick Hellewell
4 февр. 2019 г. 03:03:13

единственные плагины у меня это akismet, loginizer, realy simple ssl и wordfence

John Tippin John Tippin
4 февр. 2019 г. 03:22:34

Отключите все ваши плагины (особенно really simple ssl). Затем настройте ваш htaccess как показано. После этого используйте плагин для поиска и замены (мне нравится "Better Search and Replace") и замените http://www.yourdomain.com на https://www.yourdomain.com.

Rick Hellewell Rick Hellewell
4 февр. 2019 г. 03:51:08

Упомянутая в комментарии выше строка поиска-замены должна выглядеть так: искать http://yourdomain.com и заменять на https://yourdomain.com - из-за форматирования в комментарии это отображается некорректно.

SherylHohman SherylHohman
2 мар. 2020 г. 01:09:59
Показать остальные 2 комментариев
0

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

Причина, по которой HTTPS (SSL) не работает на моем WordPress, даже после изменений:

  1. Файла Virtual Host (также известного как <web_directory>.conf) в директории /etc/apache2/sites-available
  2. Файла wp-config в директории /var/www/<web_directory>/
  3. [Для пользователей AWS EC2] Добавления балансировщика нагрузки с SSL-сертификатом для HTTPS-соединений

Если после выполнения всех этих действий ваш сайт отображается без работающих CSS и JavaScript, тогда:

Последний шаг

  1. В панели управления WordPress перейдите в Настройки>Общие

    • В поле Адрес WordPress (URL) укажите https://<ваш_домен>.com
    • В поле Адрес сайта (URL) укажите https://<ваш_домен>.com

Я обнаружил, что когда только Адрес сайта (URL) был активирован с URL сайта, темы WordPress автоматически перенаправляли файлы CSS с HTTPS, то есть https://<WordPressAddress>/css/index.css.

Поскольку только ваш домен имеет доступ по SSL, добавление имени домена в Адрес WordPress (URL) решило проблему для меня.

21 авг. 2019 г. 09:12:24
1

Добавьте этот код в файл wp-config.php в корневой папке вашего WordPress.
Также в Общих настройках в Админ-панели измените http на https для параметров siteurl и home.

define('FORCE_SSL_ADMIN', true); // Принудительно включаем SSL для админки
if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)
   $_SERVER['HTTPS']='on'; // Устанавливаем HTTPS, если используется прокси с HTTPS
21 авг. 2019 г. 09:43:15
Комментарии

Почему? Что это делает?

Johan Johan
18 сент. 2021 г. 01:57:58
0

У меня была такая же проблема, когда я размещал свой сайт на Azure Web App Service под Linux.

Попробуйте этот плагин. Будьте осторожны при его активации — он сразу начинает работать. https://wordpress.org/plugins/jsm-force-ssl/

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

Учитывает переменные прокси / балансировщика нагрузки для крупных хостинговых сред:

HTTP_X_FORWARDED_PROTO HTTP_X_FORWARDED_SSL Требования:

Ваш веб-сервер должен быть настроен с SSL-сертификатом и способен обрабатывать HTTPS-запросы.

Просто активируйте плагин — и всё готово:

Нет никаких настроек плагина для изменения, и не вносятся правки в конфигурацию WordPress — просто активируйте или деактивируйте плагин, чтобы включить / отключить фильтры и динамические редиректы.

7 мая 2020 г. 17:51:33