Мы только что переключили доменные имена с www.olddomain.com на www.newdomain.com. У нас есть несколько быстрых решений для настольных компьютеров, https://wwww.example.com.
Я установил правила перезаписи как в vhosts, так и в SSL vhost, чтобы, если домен не является www.newdomain.com, перенаправлять на www.newdomain.com.
Перезапись VirtualHost работает безупречно для запросов без SSL. Однако на страницах SSL пользователям выдается исключение из недопустимого сертификата безопасности. До этого момента правило перезаписи, похоже, не действует. Однако, если они добавят исключение, немедленно сработает правило перезаписи и перенесет их на www.newdomain.com.
Похоже, что исключение сертификата происходит до перенаправления, что имеет смысл. Вот перенаправление виртуального хоста SSL. Не SSL почти идентичен.
<VirtualHost _default_:443>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.newdomain\.com$ [NC]
RewriteRule ^ https://www.newdomain.com%{REQUEST_URI} [R=301,L]
....
<VirtualHost>
Я читал, что HTTP_HOST не является допустимой переменной в SSL, но даже удаление этого условия и перенаправление всех запросов по-прежнему вызывает исключение.
Что мы можем сделать, чтобы выполнить перенаправление на новый домен с действующим сертификатом SSL и комбинацией поддомен / домен до отображения исключения сертификата браузера?
Учитывая, что перезапись / перенаправление не происходит до тех пор, пока пользователь не сделает запрос, вполне логично, что HTTPS-запросы к сайту с неправильным сертификатом SSL вызывают предупреждение браузера.
Правильный способ справиться с этим - иметь два отдельных хоста SSL на разных IP-адресах, каждый из которых настроен со своим собственным сертификатом SSL. Затем в vhost старого домена настройте перенаправления по своему усмотрению.
Поскольку HTTPS согласовывает безопасность перед заголовком host:, вам нужно либо получить сертификат, который имеет как старый сайт, так и новый сайт, либо вам нужно поместить перенаправитель старого сайта на его собственный IP-адрес. Вы можете играть в игры с портами, но это, вероятно, запутает ваших пользователей.
Вместо 2 отдельных IP-адресов и 2 отдельных сертификатов можно использовать другой вариант. Сертификат UC включить оба имени в один сертификат. Затем вы можете перенаправить, не получая никаких ошибок.