¡El problema estaba en Apache!
Mirando la configuración "conf/httpd.conf" de apache, he encontrado las siguientes líneas:
Código Apache:
Ver original<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=5, private, proxy-revalidate"
</FilesMatch>
Al parecer PHP no puede modificar lo que la configuración de Apache tenga. He comentado estas lineas y ha funcionado a la perfección.
Ahora me surge una duda. ¿Se puede hacer que la configuración de Apache sea la predeterminada a menos que PHP lo cambie?
Un saludo...