Настройка Joomla 3 для работы по протоколу https
Перевод сайта для работы по протоколу https можно реализовать многими путями. Мои личные предпочтения: подключение к сервису cloudflare.com по многим и разным причинам.
Сам процесс «подключения» пропустим. Суть данного материала — не забыть манипуляции, которые нужно произвести с сайтом на cms Joomla! 3.x после обновления DNS у регистратора и настройки cloudflare.com
Поправка: для разных хостеров перечень «мероприятий» разный, мои сайты (в основном) находятся на valuehost.ru Для иных хостеров порядок и методы могут быть иными.
Порядок «мероприятий»
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 Не знаю почему и... не хочу знать.
Для комментирования материалов регистрация на сайте не нужна. Правила публикации: наличие здравого смысла. Комментарии проходят премодерацию и публикуются только после проверки администратором.