Hosts virtuais dinâmicos no Apache com subdomínios www e não www

4

Eu não conheço muito bem o apache e tenho um problema com o configure mod_vhost_alias

Este é o meu arquivo httpd.conf:

UseCanonicalName Off

LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon

<Directory /var/www/sites/>
Options FollowSymLinks
AllowOverride All
</Directory>

<VirtualHost *:80>
    CustomLog logs/access_log.sites vcommon
    ServerAlias *.domain.com
    UseCanonicalName Off
    VirtualDocumentRoot /var/www/sites/%1/
</VirtualHost>

Subdomínios funcionam bem sem www. mas eu preciso fazê-los trabalhar com www também.

Veja um exemplo:

something.domain.com - site is loading
www.something.domain.com - Not Found

O que devo fazer?

    
por haukish 15.12.2012 / 20:44

2 respostas

0

VirtualDocumentRoot /var/www/sites/%1/ está olhando a primeira parte do nome - assim, para something.domain.com , está usando something e, para www.something.domain.com , está usando www , o que não funciona muito bem.

Algumas opções diferentes:

  1. Use o something como o diretório que está procurando nos dois casos; em vez da primeira parte do nome, veja o penúltimo:

    VirtualDocumentRoot /var/www/sites/%-3/
    
  2. Mude para o nome completo e crie um link simbólico (veja a resposta de Michael):

    VirtualDocumentRoot /var/www/sites/%0/
    
por 15.12.2012 / 21:26
2

something.domain.com e www.something.domain.com são obviamente nomes de host diferentes. E o Apache substituirá isso por %1 ao procurar os arquivos a serem exibidos. Então, o problema é que /var/www/sites/www.something.domain.com não existe.

Uma forma de corrigi-lo (assumindo que esses dois sites devem servir os mesmos dados) é por meio de um simples link simbólico:

ln -s something.domain.com /var/www/sites/www.something.domain.com

(Eu também senti falta de você precisar de %0 em vez de %1 , como na resposta de Shane Madden. Então faça isso também.)

    
por 15.12.2012 / 20:48

Tags