Lighttpd envía encabezados incorrectos para contenido UTF-8

8

Ubuntu / Lighttpd no está sirviendo mis archivos codificados UTF-8 con el Content-Typeencabezado correcto . Está enviando en Content-Type: text/htmllugar de Content-Type: text/html; charset=UTF-8. ¿Cómo configuro Lighttpd para enviar los encabezados correctos?

No vi ninguna configuración útil en el valor predeterminado lighttpd.confy tengo problemas para encontrar información en la documentación .

M. Dudley
fuente

Respuestas:

8

El lighttpd.confarchivo predeterminado parece cargar tipos MIME al /etc/mime.typesusar un script perl:

include_shell "/usr/share/lighttpd/create-mime.assign.pl"

En mi /etc/mime.typesmis htmlarchivos habían sido configurados para ser servidos como text/html. Comenté el include_shellscript de perl y añade la siguiente mimetype.assign entrada a lighttpd.conf:

mimetype.assign = ( ".html" => "text/html; charset=utf-8" )

No estoy seguro de si hay una solución más elegante. Usando este método, necesitaría copiar todas las entradas /etc/mime.typespara retener las otras asignaciones de tipo MIME.

M. Dudley
fuente
5

Estaba teniendo el mismo problema y finalmente encontré una solución en un blog

Básicamente es una versión proxeneta del script perl mencionado anteriormente que agrega la declaración charset = utf-8 a todos los tipos mime que comienzan con "text /" Simplemente reemplace el script perl y reinicie lighttpd.

D-zel
fuente
Esta solución es más elegante, la solución de Michael Dudley no es satisfactoria, ya que copia estáticamente todo el contenido o carece de tipos MIME para todos los datos que no son HTML ...
Jocelyn delalande
0

No es más limpio simplemente agregar el `; charset = utf-8 string´ para cada línea "text /" en mimes.conf? Quiero decir como:

  ".css"          =>      "text/css; charset=utf-8",
  ".html"         =>      "text/html; charset=utf-8",
  ...
Paul Bernal
fuente