Yes, this question has been asked before, however, the answers have been inconsistent. Take Why I have to call 'exit' after redirection through header('Location
USECASE SCENARIO: Redirect users to captive portal then start a countdown timer to write them off the block list after x minutes.