Wie konfiguriere ich den virtuellen Standardhost, der in Apache einen 404-Header zurückgibt?


14

Ich weiß, dass ähnliche Fragen gestellt wurden, aber die verfügbaren Antworten sind nicht sehr klar. Bitte nehmen Sie Kontakt mit mir auf.

Nach dem Einrichten einiger <VirtualHost>s in Apache möchte ich den _default_Servernamen so konfigurieren , dass er die 404-Nachricht zurückgibt. Dh, wenn im Host-HTTP-Header keine explizit verfügbare Domäne angegeben ist, geben Sie 404 zurück.

Jede Hilfe wäre sehr dankbar.

Antworten:


27

Hast du versucht:

Weiterleitung 404 /
ErrorDocument 404 "Seite nicht gefunden"

im voreingestellten VirtualHost?


Danke, das hat es geschafft! Da es offensichtlich ist, dass mein Fachwissen gering ist, möchte ich meinen Kollegen hinzufügen, dass der Standardserver zuerst angezeigt wird. (Das hat eine Weile
gedauert,

HINWEIS: Wenn das ErrorDocumentSymbol auf eine Datei oder eine URL in diesem vhost verweist, wird auch ein 404 zurückgegeben, wodurch ein interner Serverfehler generiert wird.
Cyril N.

Diese Antwort funktioniert für Sites, bei denen alle vhosts in einer einzigen Datei enthalten sind (Eugene Fidelins Antwort ist vollständiger). Bei der Verwendung separater .conf-Dateien für jede Site mit a2ensite konnte ich nicht herausfinden, wie die Standardkonfiguration (404) zuerst geladen wird.
Andrew Swift

Redirect 404 /reicht aus, um die standardmäßige Apache-Seite "Nicht gefunden" anzuzeigen, und sie funktioniert auch in einem bestimmten virtuellen Host (es kann Fälle geben, in denen Sie 404 für eine gesamte Site zurückgeben
möchten

1

Hier ist ein Beispiel für 000-default.conf, das den Fehler 404 zurückgibt, wenn der Servername nicht für Apache konfiguriert ist

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

Ich kann bestätigen, dass der zweite Teil funktioniert, wenn alle vhosts in einer einzigen Datei konfiguriert sind (ich habe es zuerst geschrieben).
Andrew Swift

1
Es ist möglicherweise besser, 503 (Dienst nicht verfügbar) anstelle von 404 zu verwenden, aber ich bezweifle, dass dies in der Praxis einen großen Unterschied macht. Überwachungstools werden normalerweise auf Codes aufmerksam gemacht, die nicht 200 sind.
Kris

Es funktioniert perfekt für http, aber nicht für https, wenn ich mit Port 443 arbeite. Haben Sie eine Ahnung davon?
Sohail Ahmed
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.