Недавно перевез сайт на новую площадку, с хорошей настройкой nginx+httpd+php7 (да-да, мною настроенная 🙂 ). И это полностью сломало мне сайт 🙁

Во-первых откуда-то взялся mixed-content, которого не может быть никак, т.к. не использую вообще каких-либо кастомных переделок — все нативное и 100% рабочее. Плюс при входе в админку выхватил бесконечную переадресацию.

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

При связке nginx+http и ssl via nginx, велик шанс, что ssl wordpress-ом подхватится криво, т.к. в нем нет механизмов определения работы протокола, что и приводит к этому mixed-content, и прочим глупостям.

Ну и радость в виде невозможности зайти в админку, из-за бесконечного редиректа — тоже хороша. Тут временный фикс таков — в базе, в таблице options находим siteurl и home, и убираем там https. Проверяем, чтобы в .htaccess не было никаких редиректов. Это позволяет зайти по http в админку.

Далее находим этот модуль — https://wordpress.org/plugins/ssl-insecure-content-fixer/ и ставим его.

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

В «инструментах» в админке должен появится пункт — Проверка SSL. Идем туда и смотрим на что он ругается, в моем случае это была необходимость изменить тип определения https с дефолтного WP, на X-Forwarded-Proto (из-за nginx очевидно). Все остальные настройки — дефолтные.

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