Редирект c www на без www в условиях https

Как вы уже могли заметить в моем блоге появился SSL сертификат (конечно, правильнее будет – TSL, но так как ssl уже более устоявшееся название, да и все его используют, то и я буду использовать его). И сегодня я расскажу вам как я намучался с, вроде бы простой вещью, – редиректом с www на без www в условиях https

Редирект c www на без www в условиях https

Ничего не предвещало беды.

Что мы делаем когда не знаем, не понимаем чего либо, или что происходит? Правильно – гугл в помощь, и по первой ссылке я нашел ответ который отлично работал у автора.

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

Все бы отлично, да вот только нифига не работает этот вариант. Пробовал еще кучу разных разностей.

Очень понравилась статья конца 2014 года

В свое время я задавался этим вопросом как сделать переадресацию одновременно с http:// на https:// и с http://www.example.u на https://exapmle.ru, но готового примера найти не получилось.

Ну да, к 2014 году такого примера конечно нигде не было. Так я и поверю. Вот кстати и вариант автора –

RewriteEngine On 

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

RewriteCond %{ENV:HTTPS} !1 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1

Но, как выяснилось – такое тоже не особо то и работает.

Подсказку, как обычно, дал любимый мною stackOverflow

подсказка на stackoverflow

Если вы хотите чтобы редиректило с без www на www, то вам нужен сертификат на оба домена.

Возможно для хороших администраторов серверов это не новость, но я не позиционирую себя как администратор, и поэтому для меня это было в новинку.

Если вы получаете бесплатный сертификат (об этом я писал в этой статье), то в поле ввода доменного имени нужно указывать не просто ваш домен, а все варианты вашего домена. Например в случае с блогом я указал следующее

www.phpbl.ru  // основной домен с www
m.phpbl.ru    // мобильная версия
phpbl.ru      // основной домен без www

И вот с таким сертификатом уже и будут работать приведенные выше варианты htaccess. Я лично использую следующий код

RewriteEngine on

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

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
[Всего голосов: 4    Средний: 4.5/5]

Редирект c www на без www в условиях https: 1 комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.