2011-03-26 19 views
11

CÓMO de hacer esto con htacess:.htaccess subdominio

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

hago abetos redirigen:

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

¿Cómo es insertado en forma 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] 
+0

¿Hay varios subdominios? –

+0

Actualmente no hay – Makigator

Respuesta

9

Este es un comodín solución basada, por lo que debería funcionar para cualquier cantidad de subdominios.

Esto redirigirá domain.com/foo/bar-foo.domain.com/bar:

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

Este se encargará de (reescritura interna) los hosts virtuales:

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

Se podría considerar el uso de 301 (redirección permanente) en lugar del 302.

Le sugiero que tenga un VirtualHost para su sitio principal domain.com o www.domain.com y uno diferente para manejar los subdominios virtuales.

Por sólo un determinado subdominio:

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] 
+0

Creo que debe agregar el subdominio * .domain.com en su cPanel o tal para que funcione. –

+0

Estoy editando constantemente la respuesta. Sí, en un punto debe haber un 'ServarAlias ​​* .domain.com' en un' VirtualHost'. – vbence

+0

Gracias, buena decisión. Cómo se hace, pero solo para un subdominio con un nombre específico (es decir, un subdominio solamente 1) – Makigator

Cuestiones relacionadas