На форуме каждый день появляется куча тем что "подключили SSL и все сломалось, циклический редирект и тп"
В подавляющем большинстве случаев нужен редирект с www на без и на https с без
Первым делом отключаем редиректы в панели хостинга, до добра они никогда не доводят и делаем сами
Инструкция для Apache т.к. почти на всех хостингах используется он
Все правила редиректов нужно вставлять в файл .htaccess который лежит в корне магазина в этот блок после RewriteBase / !
www редирект простой
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
с HTTPS все интереснее, т.к. разные хостинги используютт разные сборки вебсерверов и методы определения HTTPS они разные
Вторая часть правила у нас будет неизменная
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
А вот первую придется выбрать из
RewriteCond %{HTTP:SSL} !=1
RewriteCond %{HTTPS} =off
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{ENV:HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTP:X-HTTPS} !1
Этого хватит для почти всех хостингов
Расскажу как понять какой тип определения HTTPS вам нужен
открываем файл index.php
и пишем туда
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
открываем сайт по http и видим что-то подобное
ищем знакомые слова из блока с редиректами
и видим
[HTTP_X_FORWARDED_PROTO] => http
Значит у нас получится конструкция такого рода
#Правила для редиректа
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
#Правила для с www на без
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
если хотите чтобы robots.txt был доступен роботам по http
то первым правилом этого блока нужно добавить
RewriteCond %{REQUEST_FILENAME} !^robots.txt$ [NC]
Если вам лень читать это все и вы просто промотали сюда - подберите просто методом тыка, это занимает 5 минут
Спасибо за внимание, ваш spectre