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.