2015-06-25 6 views
2

У меня есть то, что я считаю довольно хорошо обработанный файл .htaccess:Htaccess раздеться WWW и силу SSL

RewriteEngine On 

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

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

Это говорит мне «раздеть WWW от URL-адрес и заставить протокол HTTPS..» И он отлично работает, за исключением тех людей, которые набрали https://www.somedomain.com/. Этим людям предъявлено предупреждение о наличии проблемы с сертификатом сайта. Похоже, что в этом конкретном случае www не разделяется.

ответ

1

Вы можете фактически объединить оба правила в одно:

RewriteCond %{HTTP_HOST} ^www\. [NC,OR] 
RewriteCond %{HTTPS} off 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule^https://%1%{REQUEST_URI} [R=302,L,NE] 

Затем убедитесь, чтобы очистить кэш браузера, чтобы проверить это.

Однако просто помните, что согласование сертификатов между веб-сервером и браузером происходит до того, как вызывается mod_rewrite.

+0

Спасибо anubhava, учитывая, что согласование сертификата происходит до mod_rewrite, есть ли решение для тех пользователей, которые застряли при вводе www? Нужно ли мне покупать подстановочные сертификаты для каждого домена? –

+0

Я считаю, что большинство сертификатов SSL поддерживают как «www», так и не-www. – anubhava

+1

Ну, повторная установка сертификата на домен, похоже, исправила его. Идите фигуру. Вы заработали галочку сэр. –

 Смежные вопросы

  • Нет связанных вопросов^_^