Tengo una configuración de Apache2 con múltiples VirtualHosts. Mi DNS está configurado para aceptar *.<domain>.<tld>
en múltiples dominios. Todo funciona correctamente, pero si voy something-random-here.example.com
, parece que se está seleccionando un VirtualHost no válido (supongo que el primero o el último que encuentre). ¿Hay alguna manera de decirle a Apache que use ciertas reglas si ninguna de las entradas de VirtualHost coincide con el dominio o subdominio? Preferiblemente me gustaría devolver un 404.
12
ports.conf
. No funcionaba porque intenté hacer coincidir *: 80 cuando estaba usando <ip>: 80 en mis hosts virtuales. En cambio, tuve que crear una entrada predeterminada por separado para cada IP y ahora funciona.El comodín incluye los archivos de configuración de su sitio:
Organice los archivos conf de su sitio para que se carguen en el orden esperado. Ejemplo...
01-httpd.conf
02-site1-httpd.conf
03-site2-httpd.conf
etc ...
Apache los leerá en orden. Luego, cree uno que siempre se cargue en último lugar para capturar los hosts virtuales no coincidentes y devolver un 404 en lugar de cargar un sitio predeterminado.
99-catchall-httpd.conf
Asegúrese de reemplazar los puertos con cualquier puerto en el que escuche su httpd. O si tiene httpd escuchando en interfaces específicas, deberá agregar un catchall para cada interfaz, de esta manera:
Espero que esto ayude. Utilizo este método para cargar sitios en el orden que especifico y evito que los hosts virtuales no coincidentes carguen un sitio inesperado sin querer.
fuente
Como se
Moritz Both
menciona, Apache2 utilizará el primer host virtual que encuentre si no coincide con ninguno de los que ha solicitado.Cuando instala Apache2 por primera vez, hay un sitio web predeterminado que puede usar como plantilla, modificar o eliminar, y siempre me preguntaba para qué era realmente 000-default.conf, porque también tenían un default.conf. Después de leer lo que
Moritz Both
dijo, todo tiene más sentido ahora.Lo que hice para mi servidor fue copiar la configuración para el nombre de host predeterminado (sitio web) en el archivo 000-default.conf y
a2ensite 000-default
.Ahora, cada vez que hay una solicitud de dominio sin igual para mi sitio web, sirve la página predeterminada de 000, que es solo una copia de mi página predeterminada real.
fuente
<VirtualHost *:443> ... Redirect / https://baseurl/ ... </VirtualHost>
pero la url permanece igual. He hecho lo mismo para la versión que no es SSL y se redirige correctamente. ¿Algunas ideas?