PHP/Apache: múltiples llamadas al encabezado() no funcionan

PHP/Apache: múltiples llamadas al encabezado() no funcionan

En mi archivo PHP tengo este código (no el código real, sólo con fines de demostración):

ob_start();
var_export(headers_sent());
var_export(ob_get_status());
header('Content-Type: text/html');
header('Content-Type: application/json');

Pero los encabezados de respuesta terminan siendo text/htmlen lugar de application/json. Según tengo entendido, la última llamada a header()debería ser lo que se usa, especialmente porque headers_sent()devuelve falso y ob_get_status()también confirmará que el almacenamiento en búfer de salida está activado.

Endocumentación PHPporque header()dice esta declaración en el registro de cambios de la versión 5.1.2:

Esta función ahora evita que se envíe más de un encabezado a la vez como protección contra ataques de inyección de encabezado.

Sin embargo, no estoy muy seguro de lo que eso significa, porque ciertamente esto no ha sido un problema todo el tiempo desde PHP 5.1.2.

e inclusoWordPressdepende de llamar header()varias veces, por ejemplo. en wp-admin/admin-ajax.phpdonde llama al principio del archivo y luego , @header( 'Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );cuando determina que la acción necesita devolver datos JSON que @header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );llama .wp_send_json()wp-includes/functions.php

¿Hay algún cambio que pueda hacer en el servidor para que PHP use el último tipo de contenido dado? Obviamente no puedo cambiar los archivos principales de Wordpress.

Yo uso Debian 9.3, PHP 7.1.3, Apache 2.4.25.

Nota del sitio: el efecto de este problema es que la biblioteca multimedia no carga ninguna imagen en modo de cuadrícula y el indicador de actividad simplemente sigue girando.

!! ACTUALIZAR !!

Ahora descubrí que esto sucede porque tengo lo siguiente en mi .htaccessarchivo:

php_value output_handler mb_output_handler

Se me ha olvidado por qué tengo eso ahí, así que no estoy segura de atreverme a quitarlo... ¿Pero por qué tiene ese efecto?

información relacionada