¿Cómo configuro el host virtual predeterminado para devolver un encabezado 404 en apache?

14

Sé que se han hecho preguntas similares, pero las respuestas disponibles no son muy claras, así que tengan paciencia conmigo.

Después de configurar algunos <VirtualHost>s en apache, me gustaría configurar el _default_ ServerName para que devuelva el mensaje 404. Es decir, a menos que se especifique algún dominio explícitamente disponible en el encabezado http del Host, devuelva 404. (Idealmente, algo más directo que señalar a un directorio ahora inexistente).

Cualquier ayuda sería muy apreciada.

ezequiel-garzon
fuente

Respuestas:

27

Has probado:

Redirigir 404 /
ErrorDocument 404 "Página no encontrada"

en el VirtualHost predeterminado?


fuente
Gracias, eso lo hizo! Como está claro mi bajo nivel de experiencia, podría agregar a mis compañeros novatos que el servidor predeterminado debería aparecer primero. (¡Esto me llevó un tiempo darme cuenta!)
ezequiel-garzon
Tenga en cuenta que si ErrorDocumentapunta a un archivo o URL dentro de ese host virtual, también devolverá un 404, generando así un error interno del servidor.
Cyril N.
Esta respuesta funcionaría para sitios donde todos los vhosts están contenidos en un solo archivo (la respuesta de Eugene Fidelin es más completa). Al usar archivos .conf separados para cada sitio con a2ensite, no pude averiguar cómo cargar primero la configuración predeterminada (404).
Andrew Swift
Redirect 404 /es suficiente para mostrar la página predeterminada "No encontrado" de Apache y también funciona dentro de un host virtual específico (puede haber casos en los que desee devolver 404 para un sitio completo para que desaparezca de los SERP de Google)
lucaferrario
1

Aquí hay un ejemplo de 000-default.conf que devolverá un error 404 si el nombre del servidor no está configurado para Apache

<VirtualHost *:80>
  ServerName default
  Redirect 404 /
</VirtualHost>
<VirtualHost _default_:80>
  Redirect 404 /
</VirtualHost>
Eugene Fidelin
fuente
Puedo confirmar que la segunda parte funciona cuando todos los vhosts están configurados en un solo archivo (lo puse primero).
Andrew Swift
1
Podría ser mejor usar 503 (Servicio no disponible) en lugar de 404, pero dudo que en la práctica haga mucha diferencia, las herramientas de monitoreo generalmente alertarán sobre cualquier código que no sea 200.
Kris
Funciona perfectamente para http pero no para https cuando lo hago con el puerto 443. ¿Tienes alguna idea al respecto?
Sohail Ahmed