Ese error aparece cuando "imprimes" algo en pantalla antes de enviar un header.
Esto de "imprimir" se refiere a que:
- Hay una línea en blanco
- Hay un texto que salio con un echo
- O hay un texto en html que se carga antes del header.
Siempre lo mejor es pensar que si es un header de redirección debe ir en una página totalmente en blanco porque si tiene algo antes arrojará error y lo que haya después del header no se verá.
En los casos es que hayan otro tipo de headers (De sesiones o cookies por ejemplo) corre la regla de que no debe haber nada antes o arrojará error.