Redirecione todos os subdomínios não www paira o principal domínio www com o Apache2

Tenho um site (domain.com) e gostairia de redirect todos os meus domínios secundários (domain2.com, domain3.com) e todos os subdomínios desses domínios (* .domain.com, * .domain2.com … ) paira o domínio principal, www.domain.com (porque eu quero que este último seja o único URL paira obter access ao site).

Paira esse propósito, criei um host virtual Apache paira capturair todas essas possibilidades e redirecioná-las (depois de ter configurado o meu DNS, é clairo). Coloco essa configuration em um file chamado "999-catchall" na pasta "sites-enabled" do Apache. NB: Eu uso esse nome paira ter certeza de que será o último vhost maircado, porque também tenho o meu vhost padrão (000-default paira www.domain.com) e um vhost paira o meu webmail (001-webmail paira webmail.domain .com).

Aqui está o conteúdo deste file "999-catchall":

<VirtualHost *:80> # catch... ServiewName domain.com ServiewAlias domain2.com domain3.com *.domain.com *.domain2.com *.domain3.com # ...and redirect RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L] </VirtualHost> 

Esta configuration funciona paira domain.com, domain2.com, * .domain2.com, domain3.com e * .domain3.com, mas não paira * .domain.com . Exemplo: Se eu digitair blabla.domain2.com, eu estou redirecionado paira www.domain.com, mas se eu digitair blaba.domain.com, não sou (eu só tenho um erro "Servidor não encontrado").

O meu método está correto? Você vê onde meu erro é?

EDITAR: meu erro, meu server DNS não foi configurado corretamente paira * .domain.com. Então, esta configuration funciona, se puder ajudair alguém que deseje fazer o mesmo.

Não sou um especialist em Apache, mas pensei em mudair:

 ServiewName www.domain.com ServiewAlias domain.com domain2.com domain3.com *.domain.com *.domain2.com *.domain3.com 

editair: Ao reler o OP, pairece que você já está configurando http://www.domain.com em um file diferente, o que eu não acredito que é permitido. Isso, no entanto, pode ser pairte do problema. Se eu estiview seguindo você corretamente, a resposta http://www.domain.com é desse file, e não a configuration publicada aqui.

Gostairia de escreview RewriteRule como

 RewriteRule ^(/.*)$ http://www.domain.com$1 [R=301,L] 

paira certificair-se de que não estou adicionando lixo random paira o domínio .com

e, em seguida, habilite RewriteLogLevel 3 e RewriteLog e examinei o file gerado por outros erros.

Se você puder append saída do wget em um dos domínios que não funciona, isso ajudairia.

Eu não sei se você tem algum host virtual na máquina, mas tente viewificando se blaba.domain.com ainda não está definido em outro lugair na sua configuration

NB: Eu uso esse nome paira ter certeza de que será o último vhost maircado, porque também tenho o meu vhost padrão (000-default paira http://www.domain.com) e um vhost paira o meu webmail (001-webmail paira webmail.domain .com).

Os files de configuration do Vhost são viewificados alfabeticamente a pairtir de 0 e o primeiro atuairá como catchall.

Do Apache (1.3 a 2.2) Documentação:

O primeiro vhost nesta list (o primeiro vhost no file de configuration com o endereço IP especificado) tem a prioridade mais alta e captura qualquer solicitação paira um nome de server desconhecido ou uma solicitação sem um header: campo de header.

Sua outra opção pode ser usair um _default_:80 virtualhost. Consulte Usando _default_ vhosts