Страница 1 из 1

Как сделать в apache редирект с https по информации хедера?

Добавлено: 2010-01-29 11:06:41
Dmitriy_K
Сделал два https сайта на одном IP, но разных портах (вполне обычное решение для добавления весьма второстепенного поддомена).
Но после начала эксплуатации доброжелатели потребовали сделать так, чтобы происходил правильный редирект в случае неправильного набора адреса поддомена. Неправильная ссылка https://subdomen.ru/ должна редиректиться на правильную https://subdomen.ru:4430/
Иначе по ссылке будет открываться другой, основной сайт на 443 порту.
Я пытался сделать в apache редирект с https по информации хедера, типа:

Код: Выделить всё

RewriteEngine on
RewriteCond %{HTTP:Host} ^subdomen.ru$ [NC]
RewriteRule ^(.*)$ http://other_subdomen.ru:80 [R=301,L]
При этом, по идее, после редиректа на http://subdomen.ru:80 должен происходить уже имевшийся и нормально работающий редирект на https://subdomen.ru:4430/ Это должно было заставить браузеры "стряхивать" сертификат основного сайта на порту 443 и заходить "начисто" на сайт на порту 4430.

Но обнаружилось, что хотя строка адреса переписывается, реальный, полный редирект не происходит (самое подлое, что у меня происходит на IE и Chrome, а у других нет). В браузере остаётся задействованным сертификат основного сайта на порту 443 (проверял на http://www.digicert.com/help/).
У IE и Chrome фокус, вроде, каким-то странным образом проходит, а у Firefox - нет. Он сразу ругается на несовпадение сертификатов и не пускает дальше.

Что можно сделать, чтобы заставить браузеры разрывать первичное SSL-соединение и менять сертификаты при подобном редиректе?

Re: Как сделать в apache редирект с https по информации хедера?

Добавлено: 2010-01-29 13:30:38
_kirill_
.htaccess

Код: Выделить всё

Redirect / http://your.site.com/
не?

Re: Как сделать в apache редирект с https по информации хедера?

Добавлено: 2010-01-29 15:47:30
Dmitriy_K
_kirill_ писал(а):.htaccess

Код: Выделить всё

Redirect / http://your.site.com/
не?
Я не видел примеров, чтобы это сочеталось с RewriteCond, но проверю вечером.
Мистических эффектов не ожидаю, поскольку
RewriteRule ^(.*)$ http://subdomen.ru:80 [R=301,L]
должен делать тоже самое.

Re: Как сделать в apache редирект с https по информации хедера?

Добавлено: 2010-01-29 22:50:11
Dmitriy_K
Траблы, в основном, разрешились. Проблема оказалась в неправильной настройке доступа, там остались ограничения тестового доступа только с некоторых адресов. Из-за этого возникла путаница, когда где-то работает, а где-то нет. :oops:
Firefox, Opera и Safari отказываются делать автоматический редирект и ругаются на несовпадение сертификатов. Но если согласиться сделать исключение и продолжить, то дальше всё схватывается нормально. :roll:
Сейчас оставлено:

Код: Выделить всё

RewriteCond %{HTTP_HOST} ^subdomen.ru [NC]
RewriteRule ^(.*)$ http://other_subdomen.ru [R=301,L]
Интересно, что для Internet Explorer редирект "RewriteRule ^(.*)$ https://other_subdomen.ru:4430 [R=301,L]" не проходит, сертификат первого сайта при этом не сбрасывается.
Фича или баг? :(