Здравствуйте. Подключил бесплатный ssl сертификат от Let’s Encrypt. Сайт открывается и работает по https все настроил все хорошо. Так же сайт открывается и по http. Как настроить редирект с HTTP на HTTPS. Сайт работает на Joomla 3.6.4. В интернете находил варианты как это реализовать. Нужно в файл .htaccess прописать.
1 Вариант.
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
После добавления этих строк сайт перестает работать появляется ошибка "Сайт .... выполнил переадресацию слишком много раз.
2 Вариант
RewriteCond %{HTTPS} off
RewriteRule ^(abc/def|ghi)(.*)/?$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
После добавления этих строк сайт работает но редиректа с HTTP на HTTPS нет.
Как сделать? Спасибо!
Ответы (8)
1. Внедряем в .htaccess директиву: SetEnvIf X-HTTPS 1 HTTPS
2. Подключаем в админке сайта форсирование запросов на HTTPS.
Сайт ........ ru пока не может обработать этот запрос.
Отключаю в джумле "Включить SSL" а в ПУ включаю "использовать безопасное соединение https://". результат.
Сайт ........ ru пока не может обработать этот запрос. (((
После 2 дней колдовства и шаманства проблема решена. Если у кого возникнет проблема на Joomla 3.6. с редиректом с HTTP на HTTPS вот, что мне помогло:
1. Joomla - админка - Настройки сервера - Включить SSL - выбираем Весь сайт
2. Открываем файл configuration.php в строке (public $live_site = '';) пишем адрес сайта через https:// так (public $live_site = 'https:// ... ru';)
3. Открываем файл .htaccess
дописываем строки
RewriteCond %{HTTP:X-HTTPS} ^1$
RewriteRule .? - [E=HTTPS:on]
Все сайт работает по https:// при заходе на сайт или любую страницу по http:// произойдет редирект и страница откроется по https://.
Чтоб сайт работал по 2 протоколам сразу без редиректа
Выполняем 2 пункта из трех далее открываем файл /public_html/libraries/joomla/uri/uri.php
Ищем 66 строку там
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off'))
{
$https = 's://';
}
else
{
$https = '://';
}
Меняем на
if (isset($_SERVER['HTTPS']) && !empty($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) != 'off'))
{
$https = 's://';
}
else
{
$https = 's://';
}
сайт будет работать по 2 протоколам сразу. Но после обновления Joomla придется опять редактировать файл uri.php
Так, что лучше первым способом.
Техподдержка ответила, что редирект включить не получается потому что ошибка в коде сайта.
Спасибо всем кто пытался помочь.