Настройка Joomla 3 для работы по протоколу https
Перевод сайта для работы по протоколу https можно реализовать многими путями. Мои личные предпочтения: подключение к сервису cloudflare.com по многим и разным причинам.
Сам процесс «подключения» пропустим. Суть данного материала — не забыть манипуляции, которые нужно произвести с сайтом на cms Joomla! 3.x после обновления DNS у регистратора и настройки cloudflare.com
Поправка: для разных хостеров перечень «мероприятий» разный.
Порядок «мероприятий»
1. Правим файл uri.php
Для joomla! 3.4 и 3.5 — файл находится /libraries/joomla/uri/uri.php (можно поискать кусок кода (указанный ниже) в total commayder). А лучше, все же, обновить версию cms до новой стабильной версии.
Для joomla! 3.8 — файл находится /libraries/src/uri/uri.php
Исправить в коде, было
{
$https = 's://';
}
else
{
$https = '://';
}
Стало
{
$https = 's://';
}
else
{
$https = 's://';
}
Разница в символе s в предпоследней строке кода.
2. Правка .htaccess Чтобы особо «не париться» процитируем тупо кусок обязательного кода (имеющееся содержимое файла можно стереть полностью).
<IfModule autoindex>
IndexIgnore *
</IfModule>
Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(abc/def|ghi)(.*)/?$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NC,L]
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule .* index.php [F]
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.novogireevo-kursy\.ru$ [NC]
RewriteRule ^(.*)$ http://novogireevo-kursy.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://novogireevo-kursy.ru/ [R=301,L]
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{REQUEST_URI} !^/index\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]
</IfModule>
Понятно, что в коде нужно изменить имя домена novogireevo-kursy на реально нужное в конкретном случае.
Понятно, что приведенный выше код организует переадресацию зеркал:
Сайт с www на без www и «склеивает» index.php
3. В файле configuration.php прописать url сайта (примерно 20-я строка):
Опять-таки, имя сайта поменять на нужное.
4. В robots.txt прописать Host с https, изменить url в sitemap (если сайт действующий, старый).
Sitemap: https://novogireevo-kursy.ru/Sitemap.xml
Вроде бы и всё. Обычно этого достаточно, хотя и не всегда. В последней версии (v.3.8.11) сайт работает и без правки по п.1 Не знаю почему и... не хочу знать.

Для комментирования материалов регистрация на сайте не нужна. Правила публикации: наличие здравого смысла. Комментарии проходят премодерацию и публикуются только после проверки администратором.