Como definir o VirtualDocumentRoot com base nos arquivos dentro

2

Estou tentando configurar o Apache para usar a diretiva VirtualDocumentRoot, mas meus sites não são exatamente os mesmos. A maioria dos sites tem uma pasta drupal que deve ser a raiz, mas existem alguns sites drupal muito antigos, alguns sites de rails, alguns sites de django, etc. que querem que a raiz do documento seja / ou alguma outra pasta.

Existe uma maneira de configurar o VirtualDocumentRoot com base em uma condicional ou existe uma maneira de usar o RewriteRule / Cond para detectar que / a pasta está incorreta se houver uma pasta drupal ou uma pasta pública?

Aqui está o que eu tenho até agora:

<VirtualHost *:80>
  # Wildcard ServerAlias, this is the default vhost if no specific vhost matches first.
  ServerAlias *.unicorn.devserver.com

  # Automatic ServerName, based on the HTTP_HOST header.
  UseCanonicalName Off

  # Automatic DocumentRoot.  This uses the 4th level domain name as the document root,
  # for example http://bar.foo.baz.com/ would respond with /Users/vosechu/Sites/bar/drupal.
  VirtualDocumentRoot /Users/vosechu/Sites/%-4/drupal
</VirtualHost>

Obrigado antecipadamente!

-Chuck

    
por Chuck Vose 08.05.2010 / 00:58

1 resposta

1

Is there a way to set up VirtualDocumentRoot based on a conditional ?

Não - Não é assim que VirtualDocumentRoot funciona - Ele separa uma parte do nome do host e coloca-o em um caminho.

or is there a way to use RewriteRule/Cond to detect that '/' is the incorrect folder if there is a drupal folder or a public folder?

Não tenho 100% de certeza sobre o que você está perguntando aqui, mas parece "Existe uma maneira de fazer o Apache se comportar de maneira diferente com base no conteúdo de um diretório?" - Se sim, a resposta é praticamente "Não":
O Apache apenas serve o que é dado. Ele sabe como "saber" se um diretório é um site do Drupal (ele apenas vê um arquivo PHP e dispara um interpretador PHP porque foi o que foi dito para fazer com arquivos PHP e mostra os resultados que o interpretador dá a ele de volta).

Você parece estar tentando empurrar o pino quadrado de seus sites radicalmente diferentes para o buraco redondo de VirtualDocumentRoot (que é realmente mais adequado para sites simples mortos) - No seu caso, eu acho que você realmente precisa criar hosts virtuais para cada site e gerenciar suas configurações separadamente.

    
por 20.02.2012 / 22:14