J'ai une configuration Apache2 avec plusieurs VirtualHosts. Mon DNS est configuré pour accepter *.<domain>.<tld>
sur plusieurs domaines. Tout fonctionne correctement, mais si j'y vais, something-random-here.example.com
il semble que je sélectionne un VirtualHost invalide (je devine le premier ou le dernier qu'il trouve). Existe-t-il un moyen de dire à Apache d'utiliser certaines règles si aucune des entrées VirtualHost ne correspond au domaine ou au sous-domaine? J'aimerais de préférence retourner un 404.
12
ports.conf
. Cela ne fonctionnait pas car j'ai essayé de faire correspondre *: 80 lorsque j'utilisais <ip>: 80 sur mes hôtes virtuels. Au lieu de cela, j'ai dû créer une entrée par défaut distincte pour chaque IP et cela fonctionne maintenant.Les caractères génériques incluent les fichiers de configuration de votre site:
Organisez vos fichiers de configuration de site afin qu'ils soient chargés dans un ordre attendu. Exemple...
01-httpd.conf
02-site1-httpd.conf
03-site2-httpd.conf
etc...
Apache les lira dans l'ordre. Ensuite, créez-en un qui se chargera toujours en dernier pour attraper les hôtes virtuels sans correspondance et retourner un 404 au lieu de charger un site par défaut.
99-catchall-httpd.conf
Assurez-vous de remplacer les ports par les ports sur lesquels votre httpd écoute. Ou si vous avez httpd à l'écoute sur des interfaces spécifiques, vous devrez plutôt ajouter un catchall pour chaque interface, comme ceci:
J'espère que cela t'aides. J'utilise cette méthode pour charger les sites dans l'ordre que je spécifie et empêcher les hôtes virtuels inégalés de charger involontairement un site inattendu.
la source
Comme
Moritz Both
mentionné, Apache2 utilisera le premier hôte virtuel qu'il trouve s'il ne correspond pas à celui que vous avez demandé.Lorsque vous installez Apache2 pour la première fois, il existe un site Web par défaut que vous pouvez utiliser comme modèle, modifier ou supprimer, et je me demandais toujours à quoi servait le fichier 000-default.conf, car ils avaient également un fichier default.conf. Après avoir lu ce qui a été
Moritz Both
dit, tout cela a plus de sens maintenant.Ce que j'ai fait pour mon serveur a été de copier la configuration du nom d'hôte par défaut (site Web) dans le fichier 000-default.conf et
a2ensite 000-default
.Maintenant, chaque fois qu'il y a une demande de domaine inégalée sur mon site Web, il sert la page 000 par défaut, qui n'est qu'une copie de ma page par défaut réelle.
la source
<VirtualHost *:443> ... Redirect / https://baseurl/ ... </VirtualHost>
mais l'URL reste la même. J'ai fait la même chose pour la version non SSL et elle redirige correctement. Des idées?