У меня есть только один настоящий сервер на mydomain.com. красный и синий поддомен только указывают на IP-адрес этого mydomain.com.
Если субдомены все указывают на одно и то же место (корень основного домена), то вам, вероятно, не нужно «перенаправлять» на другое имя хоста (это может включать использование mod_proxy и настройку обратный прокси ). Другими словами blue.example.com/red
указывает на то же самое, что и red.example.com/red
- так что это становится относительно простым внутренним переписыванием .
(Хотя ваша конфигурация vhost не завершена, я предполагаю, что у вас есть где-нибудь директивы ServerAlias
?)
Например:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^red\.example\.com [NC]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^ /red%{REQUEST_URI} [L]
Проверка по переменной среды REDIRECT_STATUS
заключается в том, чтобы убедиться, что мы переписываем только первоначальный запрос от клиента, т.е. не переписанные запросы, что позволяет избежать цикла перезаписи. REDIRECT_STATUS
изначально пусто и установлено на «200» после первого успешного перезаписи. В противном случае это безоговорочно переписывает все, поэтому можно иметь подкаталог /red
внутри корневого каталога /red
, если хотите.