Come faccio a configurare l'host virtuale predefinito restituire un'intestazione 404 in apache?


14

So che sono state poste domande simili, ma le risposte disponibili non sono molto chiare, quindi per favore abbi pazienza.

Dopo aver impostato alcuni <VirtualHost>s in apache, vorrei configurare _default_ ServerName in modo che restituisca il messaggio 404. Vale a dire, a meno che non sia specificato un dominio esplicitamente disponibile nell'intestazione http Host, restituisce 404. (Idealmente qualcosa di più diretto rispetto al puntare a una directory ora inesistente).

Qualsiasi aiuto sarebbe molto apprezzato.

Risposte:


27

Hai provato:

Reindirizzamento 404 /
ErrorDocument 404 "Pagina non trovata"

nel VirtualHost predefinito?


Grazie, l'ho fatto! Dal momento che è chiaro il mio basso livello di esperienza, potrei aggiungere per i miei compagni principianti che il server predefinito dovrebbe apparire per primo. (Mi ci è voluto un po 'di tempo per capire!)
Ezequiel-Garzon,

NOTA che se ErrorDocumentpunta a un file o url all'interno di quel vhost, restituirà anche un 404, generando così un errore interno del server.
Cyril N.

Questa risposta funzionerebbe per i siti in cui tutti i vhosts sono contenuti in un singolo file (la risposta di Eugene Fidelin è più completa). Quando si utilizzano file .conf separati per ogni sito con a2ensite, non sono riuscito a capire come caricare prima la configurazione predefinita (404).
Andrew Swift,

Redirect 404 /è sufficiente per mostrare la pagina predefinita "Non trovato" di Apache e funziona anche all'interno di un virtualhost specifico (possono esserci casi in cui si desidera restituire 404 per un intero sito per farlo scomparire dalle SERP di Google)
lucaferrario

1

Ecco un esempio di 000-default.conf che restituirà l'errore 404 se il nome del server non è configurato per Apache

<VirtualHost *:80>
  ServerName default
  Redirect 404 /
</VirtualHost>
<VirtualHost _default_:80>
  Redirect 404 /
</VirtualHost>

Posso confermare che la seconda parte funziona quando tutti i vhosts sono configurati in un singolo file (l'ho messo per primo).
Andrew Swift,

1
Potrebbe essere meglio usare 503 (servizio non disponibile) invece di 404, ma dubito in pratica che faccia molta differenza, gli strumenti di monitoraggio in genere avvisano di eventuali codici non 200.
Kris,

Funziona perfettamente per http ma non per https quando lo faccio con la porta 443. Ne hai idea?
Sohail Ahmed,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.