Nochmal: Lerne die Grundlagen.
Html wird nie, never, ever, "auf einem Apache ausgeführt" werden.
Der Webserver schiebt das
Html lediglich zum Browser.
Und wenn Du einen header:location sendest, dann führt das automatisch zu einem http-Status-Code 302. Das heisst, der Browser hört in genau dem Moment in dem er den header liest auf, die aktuelle Seite darzustellen (ignoriert also Dein Javascript komplett) und startet einen neuen Request an die angegebene Adresse. Und genau in dem Moment bist Du die Kontrolle los. Komplett.