Apache vhost com e sem 'www'?

1

Com o Mac OS X 10.6, estou me divertindo com a migração do modo antigo de hospedar vários sites (com um bloco de código em um arquivo .conf para cada host virtual) para um modo um pouco menos antigo (informando ao servidor olhar em / sites / para uma pasta chamada example.com e servir o que estiver lá.)

Fazer isso acontecer requer apenas algumas coisas: no /etc/apache2/httpd.conf, descomente esta linha

#Include /private/etc/apache2/extra/httpd-vhosts.conf

e abaixo disso, adicione

VirtualDocumentRoot /sites/%0

Então, em

/etc/apache2/extra/httpd-vhosts.conf

adicione um bloco de código que diz

<Directory /sites>
 Order Deny,Allow
 Allow from all
</Directory>

Meu único problema é que não consigo encontrar uma maneira fácil de exibir o mesmo conteúdo se o visitante solicitar o example.com ou o www.example.com. Com o jeito antigo, é fácil fazer com que responda a qualquer subdomínio. Tenho certeza de que há uma maneira de fazer isso com a configuração do Apache, então não preciso recorrer a muitos links simbólicos em / sites /. Não consegui encontrar uma resposta óbvia no link

Idealmente, não só gostaria de servir o mesmo conteúdo com ou sem o "www", como gostaria de poder continuar a utilizar subdomínios conforme necessário, por isso prefiro não ter tudo (* .example.com) é exibido na mesma pasta.

    
por Brian Ashe 11.04.2011 / 08:11

1 resposta

1

Você terá problemas com os cookies que não atravessam os sites se você tiver (efetivamente) dois hosts virtuais com a mesma raiz de documentos. Uma solução melhor seria redirecionar tudo para um domínio não www para o domínio www correspondente. Existem várias formas diferentes de o fazer, por ex. usando um manipulador 404 no vhost padrão (vazio) ou usando mod_rewrite em% {SERVER_NAME}

    
por 11.04.2011 / 16:31