редирект с http на https в .htaccess без циклической переадресации

 

Причина ошибки

Циклическая переадресация возникает из-за использования вами логического “или”: [OR].
Смотрите, что происходит для адреса http://site.com.ua [NC,OR]:

  1. Срабатывает условие RewriteCond %{HTTP_HOST} ^site\.com\.ua [NC,OR]
  2. Срабатывает условие RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ [NC]
  3. Происходит редирект на https://site.com.ua
  4. Срабатывает условие RewriteCond %{HTTP_HOST} ^site\.com\.ua [NC,OR]
  5. Не срабатывает второе условие, но оно и не обязательно из-за [OR]
  6. Происходит редирект на https://site.com.ua
  7. Зацикливание, начиная с 4 пункта.

Решение

RewriteEngine on
RewriteCond %{HTTP_HOST} ^site\.com\.ua [NC]
RewriteCond %{HTTP:X-Forwarded-Proto} ^http$
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]