Exceção do Apache VirtualHosts

1

Eu tenho o seguinte arquivo de configuração na minha máquina Debian:

<VirtualHost *:80>
    ServerAdmin [email protected]

    VirtualDocumentRoot /var/workspace/www/%2_%3/%1

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>

    <Directory /var/workspace/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

O que é ótimo para automação - eu apenas criei um diretório em um caminho específico e o domínio apenas começou a funcionar.

Mas às vezes eu preciso lançar aplicativos, que tem docroots em algum outro lugar (tipicamente www dir ou outra coisa), como eu especifico este VirtualHosts e continuo trabalhando os antigos VirtualHosts automáticos?

Quando eu adiciono, e. isso:

<VirtualHost *:80>
  ServerName www.phabricator.com.local
  DocumentRoot /var/workspace/www/phabricator_com/www/webroot

  RewriteEngine on
  RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
  RewriteRule ^/favicon.ico   -                       [L,QSA]
  RewriteRule ^(.*)$          /index.php?__path__=$1  [L,QSA]

  SetEnv PHABRICATOR_ENV custom/socialbakers
</VirtualHost>

Ele encaminha todas as solicitações em /var/workspace/www/phabricator_com/www/webroot e ignora as outras vhosts (mencionadas acima).

Por quê?

    
por Radek Simko 21.02.2012 / 09:38

2 respostas

1

Certifique-se de ter ativado a diretiva para permitir hosts virtuais nomeados. Quero dizer:

NameVirtualHost *:80

... no seu arquivo /etc/httpd/conf/httpd.conf.

    
por 21.02.2012 / 09:48
0

Tem certeza de que forneceu o nome correto depois de ServerName ? Quer dizer, termina com .local ; é o que a solicitação HTTP Host header contém? Se houver Host de cabeçalho na solicitação de HTTP não corresponder a nenhum dos vhosts baseados em nome (ou se a solicitação não tiver Host header), o primeiro vhost será usado.

    
por 07.03.2012 / 17:34