Поддержка Проблемы и решения http и https вперемешку — откуда?

  • Решено Сергей Кизим

    (@siarzhukby)


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

    SSL-сертификат установлен. На пустой сайт закатываю htaccess для редиректа на https

    RewriteEngine On
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

    Проверяю — редиректит нормально.
    Заливаю свежую версию движка, устанавливаю (с https), настраиваю.
    В настройках адрес указан с https.

    Настраиваю ЧПУ.
    Все, с этого момента начинается чехарда. Если не убрать из htaccess указанные строки, то при переходе на любую страницу пользователя редиректит на главную. Если же строки убрать, то получается смешанное содержимое и отсутствие редиректов на https — именно в таком состоянии сейчас сайт и находится.

    Я понять не могу, ну откуда там смешанному содержимому взяться вообще, откуда http вылазит? Ведь с нуля все ставится, плагинов даже нет никаких пока.

    На настоящий момент htaccess выглядит так:

    #RewriteEngine On
    #RewriteCond %{SERVER_PORT} !^443$
    #RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 3 ответов — с 16 по 18 (всего 18)
  • Автор Сергей Кизим

    (@siarzhukby)

    Так дело в в том, что вариант редиректа, который в первом сообщении я указал — он рабочий как раз. Я его проверил на страницах из голого html, прежде чем заливать движок.

    В общем, спасибо огромное! А то я уже всю голову сломал.
    Более-менее работает, направление понятно, техподдержку хостера помучаю.

    Автор Сергей Кизим

    (@siarzhukby)

    Чтобы уже закрыть вопрос.
    Ответ от хостера №1:
    ————
    При переводе сайта на WordPress на виртуальном хостинге на работу по протоколу HTTPS может наблюдаться проблема: CMS некорректно определяет протокол на всех страницах кроме главной, из-за чего наблюдается блокировка браузером подключённых к странице ресурсов и соответственно «едет вёрстка».

    Решить проблему позволяет следующая строка в начале файла .htaccess:

    SetEnvIf X-SSL-Emu on HTTPS=on

    Эта строка указывает веб-серверу Apache установить переменную окружения HTTPS, которую проверяет WordPress, в значение on, когда от веб-сервера nginx приходит заголовок X-SSL-Emu.

    Данная правка актуальна для виртуального хостинга Linux.
    ————————-

    Ответ от хостера №2:

    ————————-
    Для организации перенаправлений по указанной схема в файле .htaccess корневного каталога сайта достаточно наличия инструкций:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\. [NC]
    RewriteRule ^(.*)$ https://frozen.by/$1 [R=301,L]
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://frozen.by/$1 [R=301,L]

    При этом следует проверить настройки сайта в разделе “Настройки > Общие”. Поля “Адрес WordPress (URL)” и “Адрес сайта (URL)” должны содержать адрес сайта с https, в нашем случае — https://frozen.by для обоих полей.
    ————————-

    Автор Сергей Кизим

    (@siarzhukby)

    В общем, и то, и другое помогает, да.

Просмотр 3 ответов — с 16 по 18 (всего 18)
  • Тема «http и https вперемешку — откуда?» закрыта для новых ответов.