Te da algun mensaje de error?
Despues de una redireccion es necesario detener el script, porque header() solamente envia un encabezado al navegador, pero PHP sigue procesando las demas lineas.
Si te da algun mensaje de error como "Headers already sent on..." entonces deberas revisar que no hayas enviado absolutamente nada al navegador antes de la redireccion, ni un espacio, ni un salto de linea... NADA.