Делаю виртуальные поддомены с помощью
RewriteCond %{HTTP_HOST} ^test\.example\.com$
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^(.*)$ ?sub=test [L]
RewriteCond %{HTTP_HOST} ^demo\.example\.com$
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^(.*)$ ?sub=demo [L]
Не универсально, да...
Проблема в том, что если передаю GET параметры, они затирались. Сделал следующим образом
RewriteCond %{HTTP_HOST} ^test\.example\.com$
RewriteCond %{REQUEST_URI} (.*)/$
RewriteRule ^(.*)$ ?sub=test&%{QUERY_STRING} [L]
Получится условно такая трасформация
http://test.example.com/?q1=1&q2=2
в
http://example.com/?sub=test&?q1=1&q2=2
Не совсем красиво "&?", но работает.
Следующим шагом, хотел прикрутить данный "хак" с готовой CMS, но возник конфликт правил
example.com/user/admin/, открывает профиль, приходят GET данные
[subaction] => userinfo
[user] => admin
test.example.com/user/admin/, открывает главную, приходят GET данные
[test] => test
Мои правки стоят до правила обработки
RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]
Соответственно, если поменять местами
test.example.com/user/admin/, открывает профиль, приходят GET данные
[subaction] => userinfo
[user] => admin
но теперь отваливаются мои данные о поддомене