La directiva Nginx charset no puede modificar el encabezado Content-Type

La directiva Nginx charset no puede modificar el encabezado Content-Type

Entiendo que la directiva “charset utf-8” en un bloque http o de servidor de un archivo de configuración debería hacer que nginx incluya “Content-Type: text/html; charset=utf-8” en los encabezados de una respuesta, en lugar de solo “Tipo de contenido: texto/html”.

Sin embargo, agregué esa directiva tanto al bloque http como al bloque de servidor correspondiente, y la directiva "Tipo de contenido" se mantuvo sin cambios.

Las precauciones tomadas incluyen: 1. Recargar o reiniciar nginx después de cada cambio de configuración. 2. Incluyendo un “texto charset_types/texto html/plain;” directiva antes. 3. Realizar un cambio de configuración no relacionado y verificar que SÍ tenga el efecto esperado.

Revisé las discusiones relacionadas aquí y la documentación de nginx y no encontré ninguna explicación.

Respuesta1

charset utf-8;

en el bloque server{} debería ser todo lo que necesitas hacer. Basado en la documentación de nginx aquí

http://nginx.org/en/docs/http/ngx_http_charset_module.html#source_charset

puede colocar esto en contextos http, servidor o ubicación.

Respuesta2

Gracias por las respuestas. Finalmente me di cuenta de que estaba mirando los encabezados de una respuesta 301. Las URL sin una barra diagonal se redireccionan a las mismas URL con una barra diagonal. La respuesta 301 tiene “texto/html” como tipo de contenido. Pero la siguiente respuesta después de la redirección tiene “text/html; charset=utf-8” como tipo de contenido. No sé qué tan útil es para la respuesta 301 tener declarado el parámetro charset, pero, dado que declara texto/html como tipo de contenido, si la configuración de nginx establece charset en el bloque http, ¿no deberíamos esperar charset? ¿También en la respuesta 301? La versión de nginx es 1.10.3 (Ubuntu).

información relacionada