Как же сделать редирект на HTTPS и не получить циклическую переадресацию
На форуме каждый день появляется куча тем что "подключили 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
- 16
10 коментарів
Recommended Comments
Створіть аккаунт або увійдіть для коментування
Ви повинні бути користувачем, щоб залишити коментар
Створити обліковий запис
Зареєструйтеся для отримання облікового запису. Це просто!
Зареєструвати аккаунтВхід
Уже зареєстровані? Увійдіть тут.
Вхід зараз