Subdomínio curinga .htaccess e Codeigniter

Estou tentando criar o .htaccess adequado que me permita mapear da seguinte maneira:

http://domain.com/                --> http://domain.com/home 
http://domain.com/whatever        --> http://domain.com/home/whatever
http://user.domain.com/           --> http://domain.com/user 
http://user.domain.com/whatever   --> ht,tp://domain.com/user/whatever/

Aqui, alguém digitaria os URLs acima; no entanto, internamente, ele seria redirecionado como se fosse o URL à direita.

Além disso, o subdomínio seria dinâmico (ou seja,http://user.domain.com não é um subdomínio real, mas seria uma reescrita .htaccess)

Também / home é meu controlador padrão, portanto, nenhum subdomínio o forçaria internamente para o / home controller e quaisquer caminhos a seguir (como mostrado no exemplo # 2 acima) seriam a função (catch-all) dentro desse controlador.

Da mesma forma, se um subdomínio for passado, ele será passado como um controlador (catch-all) junto com qualquer função (catch-all) para ele (como mostrado no exemplo # 4 acima)

Espero que não esteja pedindo muito aqui, mas não consigo descobrir as regras .htaccess ou de roteamento apropriadas (no Codeigniter) para isso.

httpd.conf e hosts estão bem configurados.

EDIT # 1

Aqui está o meu .htaccess que está chegando perto, mas está bagunçando em algum momento:

RewriteEngine On

RewriteBase /
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).domain [NC]
RewriteRule (.*) index.php/%1/$1 [QSA]

RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L,QSA]

Com o exposto, quando visito:http: //test.domain/abc/123 é isso que noto em $ _SERVER var (removi alguns dos campos):

Array
(
    [REDIRECT_STATUS] => 200
    [SERVER_NAME] => test.domain
    [REDIRECT_URL] => /abc/123
    [QUERY_STRING] => 
    [REQUEST_URI] => /abc/123
    [SCRIPT_NAME] => /index.php
    [PATH_INFO] => /test/abc/123
    [PATH_TRANSLATED] => redirect:\index.php\test\test\abc\123\abc\123
    [PHP_SELF] => /index.php/test/abc/123
)

Você pode ver que o PATH_TRANSLATED não está sendo formado corretamente e acho que pode estar estragando tudo?

questionAnswers(2)

yourAnswerToTheQuestion