@mirsum

Как сделать прозрачный редирект?

Как лучше сделать чтобы на 10 доменах был один сайт, с сохранением доменов:
domen.ru/katalog
vtoroy.ru/katalog
tretiy.ru/katalog

Сейчас к сайту сделал зеркала, работает, но ругается на сертификат, так как выдан на один а показывает другой домен.
Вот и хочу тогда все запросы на сайт перенаправить с сохранением работоспособности и отображением сайта без смены домена.
либо динамичная прозрачная смена домена без https с сохранением оригинала.
Пример:
https://domen.ru/katalog и https://vtoroy.ru/katalog
это одинаковое содержимое, только визуально адреса разные

сейчас стоит такая затычка, с созданием отдельного каталога и сайта:
.htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} domen.ru$
RewriteRule ^(.*)$ https://vtoroy.ru/$1 [NC,R=301,L]

тут меняется адрес сайта, а надо чтобы не менялся домен а оставался, или работал верно https но бесплатный. возможно наверное на dns есть решение.
  • Вопрос задан
  • 168 просмотров
Пригласить эксперта
Ответы на вопрос 2
@mirsum Автор вопроса
Сайт один (это важно). Есть мульти сертификаты (это усложнение),
есть решение с редиректом с https на http
Был такой адрес https://domen.ru/katalog
а перекинуло на такой адрес http://domen.ru/katalog
Ответ написан
1. CNAME - редирект
2. Алиасами и все-равно вам прийдется выдать letsEncrypt на эти домены.
поскольку при работе через https все работает не как всегда
В апаче есть костыль, собственно их там миллион но не в этом дело.
Когда в свое время встал вопрос о нахождение 2 и более сайтов на одном порту и одном IP , то естественно RFC TCP\IP менять никто уже не стал, ибо поздно.
Был придуман костыль суть его такая
при обращению к апачу, он разберает http rerfery смотрит имя хоста в заголовке и подставляет конфиг нужного тебе хоста, в результате ты можешь держать более 2 сайтов на 1 IP
Теперь вопрос
какой контент вы получите по защищеному протоколу ДО подтверждения ключей?
Правильно никакого, а следовательно и редиректы вам не светят, вам придется сделать сертификаты для этих доменов, чтоб они хоть байт отдали.
Но это еще не все
это уже не 80 а 443 порт, как следствие если на вашем сервере открыт этот порт, то есть любой из сайтов имеет хоть 1 сертификат, то все остальные сайты и домены автоматически пытаются с них отдаться. и НЕТ не достаточно просто удалить с конфига этих сайтов 443 порт, поскольку апачь его уже слушает.
И тут возникает еще один костыль.
Если у вас выдан сертификат одному из доменов а остальные его не имеют и пусть даже не имеют вообще в конфигах 443 порта, то апачь знает о их существование и попытается сделать самую очевидную вещь в мире.
А именно он подберет (ближайший конфиг с сертификатом) ближайший по алфавиту!
То есть подставит чужой конфиг и чужой сертификат (а вот домен останется), и по этому домену откроется чужой сайт!
в вашем случае этим тоже можно воспользоваться и оно даже решит задачу, но это решение в корне не правильное. Например на своих серверах для блокировки такого поведения мне приходится специально сайтам без https выдавать сертификат дефолтный, и уже в конфигах nginc+ apache прописывать в servers и host что этот сайт нужно заблочить и отдать 40X код
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы