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

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

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

Непрочитанное сообщение Dmitriy_K » 2010-01-29 11:06:41

Сделал два 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-соединение и менять сертификаты при подобном редиректе?
Последний раз редактировалось Dmitriy_K 2010-02-06 21:00:22, всего редактировалось 4 раза.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/


Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

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

Непрочитанное сообщение Dmitriy_K » 2010-01-29 15:47:30

_kirill_ писал(а):.htaccess

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

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

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

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

Непрочитанное сообщение Dmitriy_K » 2010-01-29 22:50:11

Траблы, в основном, разрешились. Проблема оказалась в неправильной настройке доступа, там остались ограничения тестового доступа только с некоторых адресов. Из-за этого возникла путаница, когда где-то работает, а где-то нет. :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]" не проходит, сертификат первого сайта при этом не сбрасывается.
Фича или баг? :(