subdomínio htaccess

Como fazer isso com htacess:

subdomain.domain.com -> domain.com/subdomain (no redirect on client side) domain.com/subdomain -> subdomain.domain.com (redirect) 

Eu faço o redirecionamento de abetos:

 RewriteRule ^subdomain/ - [L] RewriteCond %{HTTP_HOST} ^subdomain.domain.com [NC] RewriteRule (.*) subdomain/$1 [L] 

Como é inserido no formulário htacess:

 AddDefaultCharset utf-8 DirectoryIndex index.php index.html index.htm Options All -Indexes ErrorDocument 404 /404.html ErrorDocument 403 /404.html RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.com RewriteRule (.*) http://www.domain.com/$1 [R=301,L] RewriteCond %{REQUEST_URI} !\.(png|jpg|jpeg|gif)$ [NC] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*)$ index.php/$1 [QSA] 

Esta é uma solução baseada em curinga, por isso deve funcionar para qualquer número de subdomínios.

Isso redirectá domain.com/foo/bar para foo.domain.com/bar :

 RewriteCond %{HTTP_HOST} ^domain.com$ [NC] RewriteRule ([^/]+)(/.*|$) $1.domain.com/$2 [R=302] 

Isso irá manipular (reescrita interna) os hosts virtuais:

 RewriteCond %{HTTP_HOST} ^(.*).domain.com$ [NC] RewriteRule (.*) %1/$1 [L] 

Você pode considerar o uso de 301 (redirecionamento permanente) em vez do 302.

Eu sugiro fortemente que você tenha um VirtualHost para o seu site principal domain.com ou http://www.domain.com e um separado para lidar com os subdomínios virtuais.

Para apenas um determinado subdomínio:

 RewriteCond %{HTTP_HOST} ^domain.com$ [NC] RewriteRule (subdomain)(/.*|$) $1.domain.com/$2 [R=302,L] RewriteCond %{HTTP_HOST} ^(subdomain).domain.com$ [NC] RewriteRule (.*) %1/$1 [L]