Ваш примерный код выглядит немного чрезмерно сложным, но очень близким к тому, что я использую:
RewriteCond %{HTTPS}s%{HTTP_HOST} ^(on(s)|offs).+\.(.+\..+)$
RewriteRule ^(.*)$ http%2://%3$1 [R=301]
Примечание. Это просто удаляет все, что находится в начале последнего имени домена. две части. Итак, ваш пользователь может ввести what.the.example. com
, и он уменьшится до example.com
. Если ваше доменное имя example.co.uk
или что-то из трех частей, конец первой строки необходимо будет изменить, чтобы он соответствовал.
Чтобы RewriteRule
сработало, оба Директивы RewriteCond
должны быть истинными.
Как насчет этого:
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [OR]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
</IfModule>
Теперь, если хотя бы одно из условий остается истинным (как для https://www.example.com/
, где выполняется только первое условие), применяется RewriteRule