Der Code von mir oben funktioniert bei mir ohne Probleme sowohl lokal als auch online.
Daher kann ich dir hier nicht mehr weiterhelfen.
Vermutlich ist bei dir (sowohl lokal als auch online) der Ausgabepuffer aktiviert. Geht bestimmt auch in der php.ini Standardmäßig, muss also nicht über ob_start() erfolgen. Dann wurde nämlich vor dem header() Aufruf noch nichts an den Client gesendet und PHP kann Header am Puffer vorbei senden