Fehler 404-Seiten ausliefern, wenn die Website passwortgeschützt ist
Warum sollte man eine Website verstecken?
Es gibt einen guten Grund, Websites hinter einem Basic-HTTP-Auth zu verstecken. Neue Features sollen vom Kunden begutachtet und abgenommen werden. Redakteure bereiten Inhalt vor, der erst später live gehen soll. Natürlich sollen Suchmaschinen diese Inhalte nicht zu früh finden - oder besser: gar nicht, schliesslich soll ja kein Duplicate Content entstehen.
Ein solcher Passwortschutz ist schnell eingerichtet: auf Webservern mit dem Apache-Webserver kann einfach eine .htaccess-Datei hinterlegt werden und der Server kümmert sich um den Rest.
404 - wir haben ein Problem!
Wird eine URL aufgerufen, die TYPO3 nicht kennt, liefert das System die konfigurierte "Page not found"-Seite und den entsprechenden 404-Header aus. Allerdings versucht TYPO3 genau diese Seite über einen Aufruf an den eigenen Webserver abzurufen und das funktioniert nicht, wenn dieser passwortgeschützt ist. Ein Dilemma! Ausgerechnet die Seite, die einen Fehler handeln soll, führt zu einem sichtbaren Fehler im Frontend!
Um dies zu umgehen, müssen wir also dem Webserver beibringen, Anfragen vom eigenen Host ohne Passwortschutz auszuliefern. Und das ist in der Tat sehr einfach:
AuthUserFile /path/to/.htpasswd
AuthGroupFile /dev/null
Require valid-user
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from server.public.ip.address
Satisfy any
Der erste Teil kommt vielen sicherlich bekannt vor: hier wird einfach nur ganz normal der Passwortschutz konfiguriert.
Anschließend werden bestimmte IP-Adressen erlaubt und mit Satisfy Any akzeptieren wir jeden Weg der Authentifizierung. Damit werden alle Anfragen vom lokalen System einfach ausgeliefert; alle anderen bekommen den Passwortdialog und müssen sich anmelden.
Falls ihr eine feste IP-Adresse habt, könnt ihr genau diesen Mechanismus auch nutzen, um von Eurem Büro auch nicht jedesmal das Passwort eingeben zu müssen.
Übrigens: der .htaccess-Schutz ist gut geeignet, um Seiten vor Suchmaschinen o.ä. zu verbergen. Für Entwicklungsumgebungen ist dies daher gut geeignet. Wer seinen regulären Besuchern Inhalte nur nach Anmeldung zur Verfügung stellen will, sollte aber von .htaccess Abstand nehmen; hierfür eignet sich die in TYPO3 vorhandene Frontend-Benutzerauthentifizierung deutlich besser!
Kommentare (2)
Chiara
vor 2 weeksEin Programmierer hat meiner Kundin über eine Statging Umgebung 64 404er reingehauen.
Löst man diese nun mit einem 301 am besten?
Danke für das Feedback!
Marc Willmann
vor 2 weeksWenn sich im Rahmen eines Relaunches die URLs ändern (was durchaus vorkommen kann), sind 301-Redirect von alt nach Neu ein probates Mittel.