Мобильная
версия

Редирект 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}

Теги: #https, #ssl сертификат

Ваша оценка:

Рейтинг: 9.4 (Оценок: 28)

Комментарии (18):

Антое
2018-04-04 02:43
Огромное спасибо, как то искал решение так и не нашел, а сейчас случайно увидел и решил попробовать: сразу заработало. Еще раз спасибо!
Давыдов
2018-02-13 21:50
Автор, дай DONATE - положим денег, за доброту, ты ты молодец!!!
adjiko
2018-02-13 04:19
Спасибо огромное. В куче хлама на формуах. Просто взял ваш код и все заработало.
Aleks.Grom3
2018-01-04 00:52
Огромнейшее человеческое СПАСИБО... 6 часов убил на поиск решения... Гугл уже материться начал... и вдруг Ваш блог... Алилуя... Еще раз спасибо все заработало...
ivanologiya
2017-12-04 23:18
спасибо все заработало крутяк!!!!!!!!!!!
Alex
2017-09-18 22:34
Благодарю, это было очень кстати)
Алексей
2017-09-11 00:00
Огромное спасибо! Очень помогли)
asf
2017-06-29 11:45
Супер - работает. Стоял редик только с http на https, добавил по вашей статье и с www
Nexoos
2017-03-04 12:40
Для тех у кого постоянная переадресация

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

RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Tepvic
2017-03-25 02:04
@Nexoos:Спасибо, у меня по этому варианту заработало
ff
2017-08-24 00:22
@Nexoos:Спасибо, помогло
Xv
2017-11-26 08:27
@Nexoos:Спасибо большое. Это работает.
alex
2018-01-12 18:19
@Nexoos:Спасибо, помогло!
егор
2016-12-07 18:00
работает, спасибо

Комментарий:

Copyright © DOC_tr 2015-2018 г. Все права защищены
Яндекс.Метрика
Перейти к мобильной версии