Несколько примеров редиректов всех страницы с http на https через файл .htaccess

Ниже предоставляю несколько вариантов решение:

#Вариант 1
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
#Вариант 2
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
#(возможно циклически редирект)
#Вариант 3
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#Вариант 4
RewriteEngine On
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#Вариант 5
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.yourdomain.com/$1 [R=permanent,L]

Еще один вариант когда надо делать редирект все страниц на https кроме одной или несколько.

#Редирект на сайт HTTPS всех страниц, кроме одной
RewriteEngine On RewriteCond %{HTTPS} =off 
RewriteCond %{REQUEST_URI} !^/test.php 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Ликбез по .htaccess

Информация о синтаксисе и символы которые можно встречать в файле .htaccess

  • . — точка означает любой символ;
  • [abc] — перечень символов, совпадающих с буквами a, b, или с;
  • [^abc] — перечень символов, что не входят в диапазон. Условию соответствует любой символ, кроме a, b, с;
  • * — предыдущий символ может повторяться 0 и более раз;
  • [abc]* — найти символы из заданного набора, идущие подряд; [^abc]* — обратная операция;
  • .* — замена любого набора символов;
  • «.*» — найти все подстроки между кавычками;
  • ^ — обозначает начало строки (при использовании в начале выражения);
  • $ — конец строки;
  • \w — буква, цифра или подчёркивание _;
  • \d — любая цифра;
  • \D — любой символ, кроме цифр;
  • [0-9] — указание на любую цифру;
  • [a-z] — указание на любую букву от a до z с нижним регистром;
  • [A-Z] — указание на любую букву от A до Z с верхним регистром;
  • [a-zA-Z] — любая буква от a до Z, регистр не важен;
  • [a-Z] — то же самое, только короче. Флаги для доп. опций NC — NoCase отключает проверку регистра символов при срабатывании правила.
  • R — Redirect останавливает изменение URL-адреса и возвращает результат.
  • L — Last останавливает создание URL-адреса, и строка считается окончательной.