Редирект на https joomla
[Решено] Joomla SSL(HTTPS) бесконечное перенаправление
В статье описаны способы решения проблемы с бесконечным перенаправлением после включения SSL в Joomla.
Если вы здесь, то, вероятно, уже поздно говорить о подготовительных моментах перед активацией функции SSL в Joomla, но может вы тот счастливчик, которому повезло найти эту статью и избежать часовой, дневной, недельной головоломки в поисках исправления сложившейся ситуации. Надеюсь статья вам поможет.
Существует несколько способов решения проблемы, связанной с бесконечным редиректом в Joomla после включения SSL. Зачастую, так или иначе, правки вносятся в файл .htaccess, config.php, либо базу данных. Разберем несколько вариантов решения этой проблемы.
Почему наименее очевидный? Весь Интернет говорит о решениях, описанных ниже. Не знаю, может эта информация и есть где-то на плохо проиндексированном сайте, либо та страница вызывает отказы в 90% случаев, т.к. содержит мало информации в себе, из-за чего не появляется в первых результатах поисковой выдачи по запросам типа «joomla ssl https redirect loop». Этот способ мне посоветовал друг, ведущий отличный блог об администрировании Windows и обратившийся в техническую поддержку хостинга раньше меня, спасибо ему.
Решение 3. Добавляем HTTPS в config.php к адресу сайта
В файле config.php установить вручную значение для переменной $live_site
Решение 4. Чистим Cookies
И да, как бы ни банально это звучало, и как бы ни банально это было, берем и чистит куки сайта, кэш страниц, всё, что связанно с «проблемным» сайтом в браузере, чистим всё.
Перевод сайта на HTTPS и устранение Mixed Content
На сегодняшний день использование протокола HTTPS на сайте необходимо не только для защиты данных, но и для поддержания его позиций в выдаче — поисковые системы учитывают наличие SSL в качестве фактора ранжирования. Чтобы перевести сайт на HTTPS вам необходимо установить SSL-сертификат, а после провести дополнительные настройки, чтобы все работало корректно.
Если вы не хотите заниматься настройкой самостоятельно, рекомендуем вам сертификат SSL Timeweb Pro — при его заказе все необходимые работы по установке и настройке SSL, а также по настройке вашего сайта выполнят наши специалисты. Вы также можете заказать отдельную услугу по настройке сайта при заказе сертификата Let’s Encrypt.
1. SSL-сертификат
В Timeweb вы можете заказать как сертификаты Sectigo, так и бесплатный Let’s Encrypt. Подробнее о типах сертификатов, их заказе и установке см. в разделе SSL-сертификаты.
После того, как сертификат установлен, потребуется выполнить определенные настройки на сайте и устранить Mixed Content.
2. Перенаправление на HTTPS
В панели управления:
3. Дополнительные настройки для CMS
Далее для корректной работы сайта по HTTPS потребуется выполнить дополнительные настройки, в зависимости от вашей CMS.
WordPress
В случае с WordPress можно обойтись без настройки вручную и воспользоваться специальными плагинами (например, Really Simple SSL), которые настроят сайт для работы по HTTPS, а также устранят Mixed Content (по крайней мере, частично).
При ручной настройке:
Joomla
1С-Битрикс
Для CMS Битрикс рекомендуется выполнить несколько дополнительных проверок:
Drupal
Для Drupal 8 дополнительных настроек не требуется.
Для Drupal 7 в конфигурационный файл settings.php добавьте строки:
MODX Revolution
Если в работе сайта возникают проблемы, попробуйте дополнительно внести следующие изменения в конфигурационный файл config.inc.php :
OpenCart
В конфигурационном файле /public_html/config.php в блоках HTTP и HTTPS укажите URL вашего сайта с протоколом HTTPS:
В конфигурационном файле /public_html/admin/config.php также укажите протокол HTTPS в блоках HTTP и HTTPS:
Prestashop
4. Устранение Mixed Content
Ошибки Mixed Content, то есть ошибки смешанного содержимого, говорят о том, что на сайте, который работает по HTTPS, все еще есть ссылки, которые ведут на HTTP. Это могут быть ссылки как на разделы вашего собственного сайта, так и на сторонние ресурсы. Присутствие смешанного содержимого не только негативно влияет на SEO, но и является проблемой безопасности, так как часть данных оказывается не защищена, несмотря на наличие SSL-сертификата на сайте.
Проверить наличие таких ссылок и ошибок можно:
Для устранения смешанного содержимого нет универсального способа, так как разные сайты имеют свои особенности, однако в целом нужно добиться отсутствия ссылок на HTTP в коде вашего сайта.
В WordPress для этой цели можно использовать специальные плагины, например:
При ручной настройке можно:
1) Заменить во всех ссылках, где возможно, протокол HTTP на HTTPS, то есть вместо ссылок вида:
Если ссылка ведет на сторонний ресурс ( http://некий-сайт/page/file.jpg ), сначала проверьте, что он доступен по HTTPS и ссылка останется рабочей. Если это не так, попробуйте воспользоваться вторым вариантом.
2) Второй вариант — заменить ссылки на относительные вместо абсолютных, то есть вместо ссылок вида:
Это же касается ссылок на сторонние ресурсы, в них необходимо полностью отбросить указание протокола. То есть вместо ссылок вида:
Если ссылка такого вида работает некорректно, а по HTTPS ресурс недоступен, то можно рассмотреть варианты:
Переход с HTTP на HTTPS на Joomla! сайте
Как вам известно https является безопасным протоколом передачи данных. И поисковые системы все больше отдают предпочтение для сайтов, работающих по данному протоколу. Поэтому если вы до сих пор используете на своем сайте незащищенный протокол http, задумайтесь о переходе.
Каждый раз все больше можно встретить информации о том, что браузеры будут предупреждать пользователей, что ваш сайт не защищен и может нести опасность кражи данных при передаче. Скорее всего в ближайшее время все сайты перейдут на защищенный протокол https.
Зачем использовать протокол https? Для того, чтобы браузер передавал информацию от пользователя к серверу по защищенному протоколу в зашифрованном виде и гарантировал, что данные (например логины и пароли) не будут перехвачены хакерами.
Сертификаты для сайтов могут быть разные, но это не тема данной статьи.
1. Первое, что необходимо выполнить — это получить сертификат. В качестве примера, как уже понятно, будет использоваться хостинг от Beget.
Заходим в панель управления хостингом. Тогда в «Домены и поддомены». Напротив своего домена можно увидеть «ssl».
Щелкаем на «ssl» и в открывшемся окне нажимаем «Установить».
После чего увидим окно с текстом, что заявка на установку сертификата принята.
На домене появится значок, который будет означать обработку данных.
На ваш электронный ящик придет письмо, что ваша заявка принята.
Позже (ждать придется недолго) снова придет письмо, что заявка выполнена.
Далее напротив своего домена можно увидеть результат установленного сертификата.
https://sovety.pp.ua — измените на свой адрес.
На этом этапе у меня уже все заработало.
Вот так будет выглядеть защищенное соединение в браузере Goole Chrome:
3. Чтобы не потерять трафик, когда пользователи будут переходить на сайт по протоколу http нужно выполнить редирект на протокол https.
Поэтому открываем .htaccess и в конец вносим такую информацию:
RewriteCond %
RewriteRule ^(.*)$ https://sovety.pp.ua/$1 [R=301,L]
https://sovety.pp.ua — измените на свой адрес.
Если данный код не работает — попробуйте альтернативные:
Еще один код:
Можно добавить код, который перебрасывает по 301 редиректу на www или с www, в зависимости от того, какой выбранный вами основной домен:
## Редирект с без www на www:
RewriteCond %
RewriteRule ^(.*)$ https://www.sitename/$1 [R=301,L]
## Редирект с www на без www:
RewriteCond %
RewriteRule ^(.*)$ https://sitename.ru/$1 [R=301,L]
sitename.ru — замените на свой адрес.
4. Вносим изменения в файл robots.txt (записываем https вместо http). Открываем файл и вносим изменения в:
Host и карту сайта — Sitemap. Например:
Host: https://sovety.pp.ua
Sitemap: https://sovety.pp.ua/index.php?option=com_jmap&view=sitemap&format=xml&lang=ru
https://sovety.pp.ua — замените на свой адрес.
5. Далее нужно внести изменения в панели веб-мастеров Google и Яндекс.
На этом все. Извините, что коротко, но я не такой большой веб мастер. Просто, возможно кому-то данная статья поможет (мне будет приятно если так). Данные настройки для вас могут не подойти, так как очень многое зависит от хостинга, который вы используете.
Настройка сайта для работы по HTTPS
Настройка сайта для работы по HTTPS
Если для работы с сайтом должен использоваться протокол HTTPS, после установки сертификата нужно произвести настройку защищенного соединения для всех элементов и страниц сайта.
В первую очередь осуществляется переадресация сайта на защищенный протокол HTTPS. Переадресация с протокола HTTP на протокол HTTPS реализуется добавлением в файл .htaccess следующих директив:
RewriteEngine on
SetEnvIf X-Forwarded-Proto https SERVER_PORT=443
SetEnvIf X-Forwarded-Proto https HTTPS=on
RewriteCond %
RewriteRule ^(.*)$ https://%
Также производится проверка всех ссылок на сайте на предмет явного использования протокола HTTP. При наличии элементов, открывающихся по небезопасному протоколу, соединение будет считаться недоверенным, и информация об этом отобразится в адресной строке.
Проверить страницы сайта можно с помощью следующего сервиса.
При наличии элементов, доступных только по протоколу HTTP, ссылки на них нужно изменить на относительные (к примеру, вместо http://yourdomain.com/content/pic.jpg в коде страницы ссылка должна иметь вид /content/pic.jpg ), либо явно указывать использование протокола HTTPS (в таком случае ссылка будет иметь вид https://yourdomain.com/content/pic.jpg «).
Сайт, на котором расположен элемент, также должен иметь валидный SSL-сертификат.
Настройка известных CMS для работы по HTTPS
Помимо ссылок, которые явным образом указываются в коде страницы, существуют особенности при переводе различных CMS на защищенный протокол.
Joomla!
Указанные действия производятся уже после установки сертификата на домен, иначе они могут привести к неработоспособности сайта.
WordPress
В административной панели WordPress производится смена протокола в адресе сайта. Для этого в разделе «Настройки» > «Общие«, в полях «Адрес WordPress» и «Адрес сайта» протокол «http» меняется на «https».
Для быстрой и удобной настройки SSL можно воспользоваться специальным плагином Really Simple SSL. Для безопасности сайта все установленные компоненты и плагины необходимо своевременно обновлять.
Bitrix
Drupal
Для расширенной настройки доступа к сайту по защищенному протоколу рекомендуем установить модуль «SSL 1.0.0-ga«, доступный по следующей ссылке. При использовании MODX Revolution для настройки работы сайта по https вносятся следующие изменения в конфигурационный файл core/config/config.inc.php:
После внесения изменений очищается кэш MODX.
Как указать поисковым системам, что сайт является защищенным
Компания Google рассматривает использование HTTPS на сайте в качестве фактора ранжирования. Для корректного индексирования сайта по протоколу HTTPS компания Google рекомендует соблюдать следующие правила:
Перенаправляйте пользователей и поисковые системы на страницу HTTPS или ресурс с переадресацией 301 на стороне сервера для адресов HTTP.
Используйте схожие по протоколам URL-адреса для всех остальных доменов (например //petstore.example.com/dogs/biscuits.php ), или обновите ссылки своего сайта для перехода непосредственно на ресурс HTTPS.
Включение шифрования SSL без сертификата приведет к некорректной работе сайта.
SSL-сертификат (https-протокол) Joomla
Содержание
Что такое SSL?
SSL (Secure Sockets Layer, пер. уровень защищенных сокетов) — это криптографический протокол, который используется, чтобы обеспечить зашифрованное соединение между сайтом и браузером. SSL сертификат позволяет нам использовать HTTPS.
Важно понимать, что по умолчанию все наши сайты загружаются по протоколу HTTP (Hyper Text Transfer Protocol, пер. протокол передачи гипертекста). При этом данные не шифруются и могут быть перехвачены и использоваться третьими лицами.
Вы можете сказать: «Мне нечего скрывать, пускай за мной следят». Но давайте рассмотрим подробнее ряд важных преимуществ, которые вы получаете при использовании SSL.
Преимущества использования SSL
1. Защита от перехвата
Если вы авторизуетесь на вашем сайте, используя публичный wi-fi (например, в кафе или метро), знайте, что в процессе соединения с вашим сайтом ваши данные могут быть перехвачены, а следовательно, вы можете потерять доступ к сайту (навсегда).
2. Защита клиентов
Первый пункт применим не только к вам как администратору, но и к клиентам. Другими словами у ваших клиентов могут украсть данные для авторизации с вашим сайтом. Поэтому все уважающие себя сайты используют защищенное соединение.
3. Высокие позиции в поисковой выдаче
Сайты, которые загружаются по https при прочих равных условиях получают более высокие позиции от поисковых систем.
4. Интеграции с сервисами
Для безопасности многие сервисы для интеграции с ними начинают требовать передачу данных по защищенному соединению. Следовательно, без наличия SSL сертификата вы не сможете работать с данными сервисами. Например, яндекс-касса, различные веб-пуш уведомления.
5. Визуальные характеристики.
У вашего сайта перед адресом появляется зеленый замочек, или название компании, что для знающих людей, говорит о защите данных, как следствие повышает доверие.
Переходим к вопросу, как выбрать SSL-сертификат. С одной стороны, все просто купил сертификат и попросил хостинг-компанию установить сертификат на сайт. Но, есть ряд моментов. И первый — это выбор сертификата.
Виды SSL-сертификатов
SSL сертификаты выпускает ряд компаний (Comodo, Geotrust, Symantec, Thawte) и есть разные уровни сертификатов. Давайте разберемся какой же сертификат нам выбрать.
По уровню доверия сертификаты бывают:
Далее будем говорить только о доверительных сертификатах. Сертификат выдается сроком на 1 год, после окончания продлеваем. Стоимость зависит от уровня сертификата.
Количество доменов.
Язык.
Брэнд и усиленная защита.
Краткий итог по выбору сертификата.
Приобретение и установка SSL-сертификата
Рассмотрим общие ключевые особенности по приобретению и установке.
Покупка SSL-сертификата
Важные моменты по покупке:
Для подтверждения требуется электронный адрес вида admin@site.ru или webmaster@site.ru
Никакие другие почтовые ящики вы указать не сможете, поэтому если у вас еще на домене не заведен один из указанных адресов, то создайте.
Установка SSL-сертификата
После оплаты на E-mail придут данные, которые нужно отправить хостинг-провайдеру, а именно:
Всю установку сертификата к домену проделает хостинг компания.
Выделенный IP-адрес
Устанавливать SSL и переводить сайт на https можно как на прежнем IP-адресе, так и на выделенный (отдельный).
Т.е. можно остаться на прежнем IP-адресе, можно получить новый.
Преимущество нового IP-адреса в том, что он закреплен только за вашим доменом, как следствие у него по умолчанию хорошая карма и в случае с рассылками с сайта вероятно попасть в спам в ненужный момент сильно уменьшается.
Выделенный IP, как правило, платный: стоимость уточняйте у своего хостера.
После установки SSL-сертификата ваш сайт будет открываться как по протоколу http, так и по протоколу https. Протокол по умолчанию всегда http, если принудительно не назначен https.
Настройка SSL (https) для Joomla
Что значит нормальная работа по https?
Это когда сайт загружается корректно и у названия сайта горит зеленый значок (во всех браузерах кроме Safari, в этом браузере просто серый замок).
Если же на вашем сайте не все изображения загружаются по протоколу https или найдены другие, вышеперечисленные ошибки, то будет вот такой значок.
Нормальная работа сайта по https предполагает:
Поэтому сейчас переходим к настройке Joomla для соблюдения всех необходимых условий.
Изменения в файле конфигурации Joomla
» >админка и внешний интерфейс открывались по протоколу https (если поставим 1, то по защищенному протоколу будет открываться только админка)
Включение SSL в админке Joomla
» >панель управления Joomla (Система → Общие настройки, вкладка Сервер, раздел Настройки сервера) и выбрать соответствующее значение для опции Включить SSL:
При этом измениться значение опции force_ssl в файле конфигурации Joomla.
При правильной настройке сервера и корректной установке SSL-сертификата опция Включить SSL (force_ssl в файле конфигурации) обеспечивает нормальную работу сайта на Joomla по https: все подключаемые файлы и внутренние ссылки будут работать по защищенному протоколу, а при запросе страниц по протоколу http будет происходить редирект на https.
Дополнительные действия для Joomla
Если приведенные выше действия не обеспечили нормальную работу Joomla по протоколу https, то опробуйте следующие методы:
В конец файла .htaccess добавляем следующую строку кода:
Изменение в файле конфигурации
Добавляем в конец файла configuration.php следующую строчку:
Этот хак должен обеспечить работу сайта по https, но содержимое файла будет обновляться при каждом изменении конфигурации, и указанную выше строчку придется дописывать вновь.
Редирект главной страницы
Открываем файл .htaccess и прописываем следующий код для главного редиректа при запросе вашего сайта через строку браузера.
Код размещаем после строки RewriteEngine On:
Сейчас ваш сайт всегда будет открываться по протоколу https и будет загружаться со всеми стилями, скриптами и изображениями.
Но! Осталось проделать еще 2 важных пункта.
Пути к изображениям и формам
Если на странице вашего сайта будут найдены изображения, которые загружаются не по протоколу https, то зеленого значка около названия вашего сайта не видать. Сам сертификат при нажатии на него будет говорить, что не все элементы грузятся по безопасному протоколу. В этом случае проверяем и исправляем.
По умолчанию, все картинки, которые вы вставляете через формы вставок картинок или через визуальный редактор автоматически меняют свой протокол загрузки и за них переживать не стоит.
Но есть изображения, путь которые вставлены в HTML-код и к ним указан абсолютный путь. Вот у таких изображений нужно в пути вместо http:// написать https://.
Изображения могут быть как в текстах, модулях, так и неправильно прописаны, например, в файлах стилях вашего шаблона.
На будущее, если вы хотите указать абсолютный путь (полный) к файлу, то прописываем без указания протокола, например //site.ru/images/photo.jpg
Если на вашем сайте есть формы на подписку, то в коде формы меняем URL, на который будут передаваться данные.
В результате нам нужно проверить все страницы сайта и, при необходимости дописать букву у обозначения протокола.
Как искать изображения, которые загружаются не по https?
Действия после настройки SSL на Joomla
После того, как будет обеспечена нормальная работа страниц сайта по протоколу Https, необходимо осуществить следующие действия:
Сообщить поисковым системам, что сайт переехал на https
Заходим в Яндекс.Вебмастер, ставим соответствующую галочку:
В Google Search Console необходимо будет добавить новый сайт с протоколом https, предварительно подтвердив права на него предложенными сервисом способами.
Проверка карты сайта
Обязательно следует проверить карту сайта на то, что все ссылки начинаются c протокола https.
Дополнительно рекомендуется загрузить обновленную ссылку на карту сайта в Google Search Console и Яндекс.Вебмастер.