dedlfix: .htaccess, header()-Weiterleitung und Session-Variable

Beitrag lesen

echo $begrüßung;

Zum anderen ist das vorgesehene Mittel bei Abruf einer nicht vorhandenen Ressource der Statuscode 404 und keine Weiterleitung (302) auf eine Ressource, die du vermutlich mit Statuscode 200 auslieferst.
Das verstehe ich jetzt nicht. Wird der Statuscode 404 nicht bereits in dem Moment gesendet in dem die Originaldatei nicht gefunden wurde? Deshalb tritt die .htaccess doch erst in aktion, oder?

Der Statuscode wird zusammen mit der Antwort gesendet, und jede Antwort hat einen Statuscode. Im Fehlerfall hat die Antwort den Statuscode 404.
Sinn der ErrorDocument-Konfiguration des Apachen ist es, eine eigene Antwort statt des vorgegebenen Textes zu senden. Wenn deine Fehlerseite nun aber mittels eines Location-Headers umleitet, wird dazu von PHP auch der Statuscode auf 302 gesetzt. Das ist ein Sonderfall der header()-Funktion.

Und wenn ich dort ein statisches Ziel (ich meine eine Datei ohne Weiterleitung) angebe bekomme ich doch auch 200 als Rückgabe?

Das sollte nicht so sein. Das Dokument wird zusammen mit dem Statuscode 404 vom Apachen ausgeliefert. Du kannst das beispielsweise mit der livehttpheaders-Extension des Firefox nachvollziehen.
(Ein Sonderfall ist, wenn du das ErrorDocument als vollständige URL konfigurierst, dann gibt es eine Umleitung.)

echo "$verabschiedung $name";