@targetologru

Как настроить переадресацию без www с учетом https?

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]


Вот такая штука дает "циклическую переадресацию на странице". Нужно сделать редирект на сайт без www и на htaccess. Помогите плиз.

Просто с http на https работает только такой вариант:

RewriteEngine on

RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


Только вот как туда прикрутить еще с www на без www, для меня темный лес...
  • Вопрос задан
  • 42 просмотра
Решения вопроса 2
@dodo512
RewriteEngine on

RewriteCond %{ENV:HTTPS} !on    [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://site.ru/$1 [L,R=301]


Для варианта без указания домена нужен ещё один RewriteCond.
RewriteEngine on

RewriteCond %{ENV:HTTPS} !on    [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?>www\.|)(.+) [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]


Все проверки можно уложить в один RewriteCond.
Для случая, когда в %{ENV:HTTPS} содержится "on" или пустая строка.
RewriteCond %{ENV:HTTPS}_%{HTTP_HOST} ^(?|on_www\.(.+)|_(?>www\.|)(.+)) [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]


Если %{ENV:HTTPS} принимает значение "on" или "off".
RewriteCond %{ENV:HTTPS}_%{HTTP_HOST} ^(?|on_www\.(.+)|off_(?>www\.|)(.+)) [NC]
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]
Ответ написан
Комментировать
shambler81
@shambler81 Куратор тега htaccess
вариант без указания домена
RewriteCond %{ENV:HTTPS} !on    [OR]
RewriteCond %{HTTP_HOST} ^www\.(.+) [NC]
RewriteRule (.*) https://%1/%{REQUEST_URI} [R=301,L]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы