2012-07-09 16 views
8

Bien, he realizado una buena cantidad de búsquedas pero todavía no puedo encontrar algo lo suficientemente específico como para manejar mi problema.redirigir todos los subdominios comodín al dominio raíz

Ahora tengo un registro de DNS que redirige todos los demás subdominios a mi servidor. Lo que estoy pidiendo es lo que haría que example.mydomain.com retorno HTTP/1.1 301 y redirigir a sólo mydomain.com

Mis disculpas si esto ha sido cubierto, simplemente no pude encontrar nada lo suficientemente específica.

Respuesta

14

Utilice un RewriteCond para que coincida con dominios que no sean mydomain.com y 301 redirigirlos:

RewriteEngine On 
# If the domain (any domain) is not exactly mydomain.com... 
RewriteCond %{HTTP_HOST} !^mydomain\.com$ [NC] 
RewriteRule (.*) http://mydomain.com/$1 [L,R=301,QSA] 

También puede buscar más específicamente para los subdominios de mydomain.com. El de arriba coincidiría con cualquier otro dominio.

# Match only subdomains of mydomain.com 
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC] 
RewriteRule (.*) http://mydomain.com/$1 [L,R=301,QSA] 
+0

esto sólo funciona con la www. ¿al principio? – JorgeLuisBorges

+0

@JorgeLuisBorges no solo www. - también coincide con _any subdomain_ 'subdomain.mydomain.com' o cualquier otro que no sea exactamente' mydomain.com'. El ejemplo superior también redirigirá 'mydomain.org' a' midominio.com' mientras que la parte inferior solo coincide con los subdominios y solo redirigirá 'subdominio.midominio.com' a' midominio.com' –

+0

'RewriteRule (. *) Http://example.com/$1 [L, R = 301, QSA] 'produce barras de trazo, por ejemplo 'www.example.com' redirige a' example.com // '. 'RewriteRule (. *) Http: //example.com$1 [L, R = 301, QSA]' parece ser correcto. –

1

This article Cubiertas .htacces y modrewrite para redirigir cualquier solicitud a cualquier Domin distinta de la primaria redirigir al dominio principal.

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !www.newdomain.com$ [NC] 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301] 
0

Según evan's blog, podría configurar sus ServerAlias ​​con comodín "*" si haces Apache como servidor. Cada visita al subdominio se redirigirá o enrutará al dominio raíz en este caso.

<Virtualhost *:80> 
VirtualDocumentRoot "/path/to/your/workspace/%1/public" 
ServerName vhosts.dev 
ServerAlias *.dev 
UseCanonicalName Off 
<Directory "/path/to/your/workspace/*"> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    Allow from all 
</Directory> 
</Virtualhost> 
0

En mi caso necesito regla como foo.bar.com>bar.com/page/foo y me encontré en Apache documentación siguiente:

RewriteCond %{HTTP_HOST} ^(.+)\.bar\.com$ [NC] 
RewriteCond %{HTTP_HOST} !www.bar.com$ [NC] 
RewriteRule ^(.*)$ http://bar.com/page/%1/$1 [L,R=301] 
Cuestiones relacionadas