Les deux utilisent la directive SetEnv
et pointent sur le même DocumentRoot:
NameVirtualHost *:80
<VirtualHost _default_:80>
DocumentRoot "/Users/mf/Sites/test"
SetEnv FROM_ROOT 'i like tacos' ## <- SetEnv
</VirtualHost>
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Users/mf/Sites/test"
<Directory "/Users/mf/Sites/test">
Options Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
SetEnv FROM_VHOST 'set in localhost vhost' ## <- SetEnv
</VirtualHost>
<VirtualHost *:80>
ServerName test
DocumentRoot "/Users/mf/Sites/test"
<Directory "/Users/mf/Sites/test">
Options Includes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
SetEnv FROM_VHOST 'set in test vhost' ## <- SetEnv
</VirtualHost>
J'ai un fichier de test / Users/mf/Sites/test/dump.php:
var_dump( $_SERVER );
Pour http://test/
tout fonctionne comme prévu, $_SERVER['FROM_VHOST']
est disponible. dump.php sorties:
array (size=33)
'UNIQUE_ID' => string 'UY7bHMCoAXIAABkbAkMAAAAC' (length=24)
'FROM_VHOST' => string 'set in test vhost' (length=17)
'HTTP_Host' => string 'test' (length=4)
…
Pour http://localhost/
les choses se décomposent:
array (size=34)
'UNIQUE_ID' => string 'UY7bA8CoAXIAABkZAhQAAAAA' (length=24)
'FROM_ROOT' => string 'i like tacos' (length=5)
'HTTP_Host' => string 'localhost' (length=9)
…
FROM_VHOST
?FROM_ROOT
?Peu de choses à essayer:
1) Cela peut être dû au fait que vous avez configuré localhost comme nom d’hôte, ce qui déclencherait probablement et plus probablement le valeur par défaut, archivez/etc/hostname ou utilisez éventuellement un nom de domaine complet comme web.localhost.
2) Une autre chose à essayer est de mettre Défaut en bas plutôt qu'en haut, car les plus hauts deviennent plus prioritaires.
3) Le correctif évident n'utilise pas localhost en tant que vhost :)
Je ne suis pas trop confiant avec ma réponse, mais essaye (j'y reviendrai quand j'aurai plus de temps)}