Joomla 2.5 с SSL(https), решение проблемы с циклической переадресацией

Поднятие Joomla 2.5 на SSL (HTTPS) может столкнуть вас с неприятной проблемой - циклической переадресацией. Это особенно актуально, если ваш веб-сервер nginx работает в качестве фронтэнда для apache2, а клиент установил SSL-сертификат на свой домен. Не волнуйтесь, мы предлагаем решение для этой проблемы.

Настройка Joomla:

  1. Изменение конфигурационного файла configuration.php:

    Вам необходимо отредактировать файл configuration.php, который находится в корне вашего сайта. Убедитесь, что следующие директивы имеют такой вид:

    .....
    public $live_site = 'https://ваш_домен.ru';
    .....
    public $force_ssl = '2';
    .....

Настройка сервера:

  1. Редирект с HTTP на HTTPS в .htaccess:

    Добавьте следующие правила в ваш файл .htaccess, чтобы осуществить перенаправление с HTTP на HTTPS:

    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  2. Изменение файла uri.php в Joomla:

    Откройте файл uri.php, который находится по пути ./libraries/joomla/environment/uri.php. В нем вам нужно найти и изменить следующий код:

    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://'; // Изменение производится здесь
    }

Эти шаги должны помочь вам избежать циклической переадресации и успешно поднять Joomla 2.5 на SSL. Если у вас остались какие-либо вопросы, не стесняйтесь обращаться к нам!