Moin!
Nein, wer sagt, dass Location einen absoluten Pfad beinhalten muss?
Wer sprach von "muss"?
Du in diesem Posting, von "Fehler" und "müsstest":
Dein header('Location: login') hat auf jeden Fall den Fehler, dass Du dort einen absoluten Pfad von der Document Root zur Loginseite angeben müsstest, aber eigentlich sogar eine vollständige URL, also header('Loacation: https://example.org/login/')
Fehler kann nicht sein, weil es funktioniert. Technisch zwingend ist es absolut nicht, diese entsprechende Bedingung in den RFCs ist schon lange veraltet und aktualisiert worden. Eine relative URL ist also eine gültige Angabe, und wenn diese URL von allen erreichbaren Seiten auf dieselbe Loginseite führt, ist alles gut.
Grüße Sven