2012-07-09 14 views
8

Ok, ho eseguito una discreta quantità di ricerche ma non riesco ancora a trovare qualcosa di specifico abbastanza da gestire il mio problema.reindirizzare tutti i sottodomini wildcard al dominio radice

In questo momento ho un record DNS che reindirizza tutti gli altri sottodomini al mio server. Quello che sto chiedendo è che cosa renderebbe example.mydomain.com restituire HTTP/1.1 301 e reindirizzare a solo mydomain.com

Le mie scuse se questo è stato coperto, proprio non riuscivo a trovare nulla di abbastanza specifico.

risposta

14

Utilizzare un RewriteCond per abbinare domini diversi mydomain.com e 301 reindirizzarli:

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] 

si può anche guardare più in particolare per i sottodomini di mydomain.com. Quello sopra corrisponderebbe a qualsiasi altro dominio.

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

questo funziona solo con il www. all'inizio? – JorgeLuisBorges

+0

@JorgeLuisBorges non solo www. - Corrisponde anche a qualsiasi sottodominio_sottodominio.miodominio.com o qualcosa di diverso da esattamente "miodominio.com". L'esempio in alto reindirizza 'mydomain.org' a' mydomain.com' mentre il fondo corrisponde solo ai sottodomini e reindirizza solo 'sottodominio.miodominio.com 'a' miodominio.com' –

+0

'RewriteRule (. *) Http://example.com/$1 [L, R = 301, QSA] 'produce barre traling, ad es 'www.esempio.com' reindirizza a' example.com // '. 'RewriteRule (. *) Http: //example.com$1 [L, R = 301, QSA]' sembra essere corretto. –

1

This article Copre Htacces e ModRewrite per reindirizzare qualsiasi richiesta fatta a qualsiasi altro Domin quello primario reindirizzare al dominio principale.

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

Secondo evan's blog, si potrebbe configurare le ServerAlias ​​con carattere jolly "*" se fai apache come lato server. In questo caso, ogni visita al sottodominio verrà reindirizzata o indirizzata al dominio principale.

<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

Nel mio caso ho bisogno di regola come foo.bar.com>bar.com/page/foo e ho trovato nella documentazione Apache questo:

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