Проблема с отсутствием CSS (и часто JavaScript) в такой конфигурации называется «Mixed Content» (Смешанный контент).
Почему это происходит?
Ваш Apache-прокси отлично настроен и передает правильные заголовки (X-Forwarded-Proto: https, X-Forwarded-Host). Но WordPress по умолчанию игнорирует эти заголовки.
WordPress смотрит в свою базу данных, видит там внутренний адрес (например, http://10.10.0.3 или http://clip.svyx.net без s) и генерирует HTML-код со ссылками на стили вида:<link rel="stylesheet" href="http://10.10.0.3/wp-content/.../style.css">
Когда браузер пользователя (который зашел на https://clip.svyx.net) видит попытку загрузить ресурс по незащищенному http:// или по внутреннему IP 10.10.0.3 (который ему недоступен), он блокирует загрузку CSS в целях безопасности.
Решение: Заставить WordPress доверять прокси и использовать HTTPS
Вам нужно добавить несколько строк в файл wp-config.php на хосте с WordPress (10.10.0.3). Это «серебряная пуля» для WordPress за обратным прокси.
Шаг 1: Отредактируйте wp-config.php
Откройте файл на сервере WordPress:
sudo nano /var/www/html/wp-config.php
Найдите строку /* That's all, stop editing! Happy publishing. */ (или её русский аналог) и ПЕРЕД ней вставьте следующий блок кода:
// 1. Жестко задаем правильный публичный HTTPS-адрес сайта
define('WP_HOME', 'https://clip.svyx.net');
define('WP_SITEURL', 'https://clip.svyx.net');
// 2. Заставляем WordPress доверять заголовкам от вашего Apache-прокси
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
$_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST'];
}
if (isset($_SERVER['HTTP_X_FORWARDED_PORT'])) {
$_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
}
Сохраните файл (Ctrl+O, Enter) и выйдите (Ctrl+X).
Шаг 2: Проверьте настройки в базе данных (на всякий случай)
Иногда плагины или темы кешируют старый URL. Убедитесь, что в базе данных тоже прописан правильный адрес.
Выполните эту команду на сервере WordPress (замените your_db_user и your_db_name на реальные из вашего wp-config.php):
wp option get home
wp option get siteurl
(Если у вас не установлен WP-CLI, вы можете проверить это через phpMyAdmin в таблице wp_options, поля siteurl и home).
Они должны возвращать https://clip.svyx.net. Если там старый IP, обновите их через phpMyAdmin или добавьте строки define('WP_HOME'...) из Шага 1 (они имеют приоритет над базой данных).
Шаг 3: Очистите кэш браузера (КРИТИЧНО ВАЖНО)
Браузеры агрессивно кешируют неудачные попытки загрузки CSS.
- Откройте сайт в режиме Инкогнито (
Ctrl+Shift+Nв Chrome илиCtrl+Shift+Pв Firefox). - Если в инкогнито сайт выглядит нормально (с CSS), значит, проблема была только в кэше вашего основного браузера. Очистите кэш (
Ctrl+F5или полная очистка кэша в настройках).
Шаг 4: Проверка через инструменты разработчика
Если CSS всё ещё не грузится, нажмите F12 в браузере, перейдите на вкладку Console (Консоль) или Network (Сеть).
- Если вы видите красные ошибки «Mixed Content: The page at ‘https://…’ was loaded over HTTPS, but requested an insecure stylesheet ‘http://10.10.0.3/…'», значит, какой-то плагин или тема жестко прописали старый URL в коде.
- В этом случае установите плагин «Better Search Replace», выполните поиск по базе данных по строке
http://10.10.0.3(илиhttp://clip.svyx.net) и замените наhttps://clip.svyx.net.
Небольшая коррекция вашего конфига Apache (опционально)
Ваш конфиг Apache в целом отличный, но одна строка может быть некорректной в Apache 2.4:
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
Лучше заменить её на стандартный вариант, чтобы избежать проблем с определением IP посетителей в WordPress (например, для защиты от брутфорса):
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s" env=REMOTE_ADDR
Или просто используйте модуль mod_remoteip (рекомендуемый способ для Apache 2.4+), но текущий вариант с wp-config.php выше решит проблему с CSS в 99% случаев без изменения конфига Apache.
Попробуйте добавить код в wp-config.php и проверить сайт в режиме инкогнито. Должно заработать мгновенно.