Vhosts curinga Apache

Mais dinâmico do que curinga, mas útil, pelo menos para mim.

Em httpd.conf:

NameVirtualHost *:80
UseCanonicalName Off
<VirtualHost *:80>
ServerAlias *.dev.box
DocumentRoot "D:/www/_domains"
VirtualDocumentRoot "D:/www/_domains/%-3+"
php_admin_value auto_prepend_file
"D:/www/_domains/set_docroot.php"
</VirtualHost>

Agora, se eu criar um diretório chamado ” example.com ” em ” D: / www / _domains “, posso acessá-lo do navegador da web em http://example.com.dev.box .

Tudo funciona bem, exceto ” DOCUMENT_ROOT ” que sempre apontará para ” D: / www / _domains “. Para resolver isso, criei um arquivo ” D: / www / domains / set docroot.php “, com
o seguinte conteúdo:

<?php
// Append the current directory name to document root

$location
= explode(".",$_SERVER['HTTP_HOST']);

# remove `dev.box` suffix
$location
= array_slice($location, 0, count($location)-2);

# set new documment root
$_SERVER
['DOCUMENT_ROOT'] .= '/'.implode('.', $location);

Isso definirá o ” DOCUMENT_ROOT ” correto para cada domínio.

Boa codificação!