Dans apache2 par conception, toute demande http avec un hôte inconnu sera dirigée vers le premier VirtualHost chargé. Existe-t-il un moyen de désactiver cette fonctionnalité? Autrement dit, je veux avoir un serveur Web où l'utilisateur ne peut accéder qu'aux définitions de VirtualHost explicitement nommées. Tout autre nom d'hôte non explicitement mentionné dans une ligne ServerName ou ServerAlias doit être ignoré en silence.
Est-ce possible?
Listen 80
NameVirtualHost *
<VirtualHost _default_:*>
# Anything matching this host should be silently ignored.
</VirtualHost>
<VirtualHost *>
DocumentRoot /www/example1
ServerName www.example.com
</VirtualHost>
<VirtualHost *>
DocumentRoot /www/example2
ServerName www.example.org
</VirtualHost>
Mise à jour: comme suggéré ci-dessous et ailleurs, ignorer silencieusement une demande peut ne pas être une bonne idée et peut-être casse les RFC pour HTTP. Cependant, étant donné que les hôtes virtuels sont conçus pour simuler plusieurs serveurs HTTP physiques distincts, l'approche silencieuse ne me semble pas déraisonnable. Ce serait la même chose que l'hébergement virtuel basé sur IP et le pare-feu sur certaines adresses IP (peut-être pas pour tous les clients).