2015-02-06 3 views
3

Я видел много статей о переписываниях. Все хорошо. Но никто не освещал эту точную ситуацию. Итак, вот мой вопрос: надеюсь, что вы можете помочь. Потому что я не могу заставить его работать.Перенаправление http => https (не www) + www https => не-www https (нет сертификата для www)

  • мы запускаем сайт на domain.com (без WWW)
  • мы создали SSL (так по протоколу HTTPS только)
  • мы имеем 1 сертификат для не-WWW версия (не WWW версии)

Когда мы выполняем все четыре тестовых, 3 ОК, 1 не

  1. http://domain.com =>https://domain.com =>
  2. http://www.domain.com =>https://domain.com => OK
  3. https://domain.com => OK
  4. https://www.domain.com => ERROR. предупреждение Сертификат не является безопасным

Вопрос: Теперь, почему это номер 4 https://www дает мне эту ошибку. Я бы ожидал, что первое правило будет получено и отправит нас на версию, отличную от www. И как мне это исправить?

Цените помощь; P Шон


Это мой currect Htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Redirect www to non-www first 
    # Added based on article http://stackoverflow.com/questions/234723/generic-htaccess-redirect-www-to-non-www 
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
    RewriteRule ^(.*) https://%1/$1 [R=301,NE,L] 

    # Then redirect http to https (if necessary) 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=301,L] 
</IfModule> 
+0

Вам нужен сертификат подстановки, но я поможем вам здесь. Попробуйте удалить ' и'' и скажите мне, если вы получите ошибку 500. –

+0

no error => works –

+0

Проблема в том, что это уже сертификат с несколькими доменами, поэтому это означает, что мне нужно будет добавьте каждый www. версия ВСЕХ доменов отдельно? Я не знаю никаких подстановочных мультидоменных сертификатов. –

ответ

0

Это решение невозможно решить только с помощью htaccess или nginx conf.

Один необходим сертификат для покрытия как WWW и не связанных версий WWW домена

Так подстановочные серт или мультидоменные серт где оба WWW и не WWW включены как отдельный домен

Надеется, что это help

2

Вы можете использовать это в .htaccess:

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    # Redirect www to non-www first 
    RewriteCond %{HTTP_HOST} ^www\.(.+) [NC] 
    RewriteRule ^(.*) https://%1/$1 [R=301,NE,L] 

    # Then redirect http to https (if necessary) 
    RewriteCond %{HTTPS} off 
    RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [NE,L,R=301] 
</IfModule> 

Но нет ничего, что вы можете сделать для ошибки сертификата.
Прочитано: Redirecting https://www to https://non-www - without seeing certificate error, possible?