Lighttpd invia intestazioni errate per il contenuto UTF-8


8

Ubuntu / Lighttpd non serve i miei file codificati UTF-8 con l' Content-Typeintestazione corretta . Sta inviando Content-Type: text/htmlpiuttosto che Content-Type: text/html; charset=UTF-8. Come configuro Lighttpd per inviare le intestazioni corrette?

Non ho visto alcuna impostazione utile nel default lighttpd.confe ho problemi a trovare le informazioni nella documentazione .

Risposte:


8

Il lighttpd.conffile predefinito sembra caricare i tipi MIME /etc/mime.typesdall'uso di uno script perl:

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

Nei miei /etc/mime.typesmiei htmlfile erano stati messi per essere servito come text/html. Ho commentato lo include_shellscript perl e ho aggiunto la seguente voce mimetype.assign a lighttpd.conf:

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

Non sono sicuro che esista una soluzione più elegante. Usando questo metodo avrei bisogno di copiare tutte le voci /etc/mime.typesper conservare le altre mappature di tipo MIME.


5

Stavo avendo lo stesso problema e finalmente ho trovato una soluzione su un blog

Fondamentalmente è una versione stimolata dello script perl sopra menzionato che aggiunge la dichiarazione charset = utf-8 a tutti i tipi mime che iniziano con "text /" Basta sostituire lo script perl e riavviare lighttpd.


Questa soluzione è più elegante, la soluzione Michael Dudley non è soddisfacente in quanto sta copiando staticamente tutto il contenuto o mancando di mimetipi per tutti i dati non html ...
Jocelyn delalande

0

Non è più pulito aggiungere semplicemente `; charset = stringa utf-8´ per ogni riga "text /" in mimes.conf? Intendo come:

  ".css"          =>      "text/css; charset=utf-8",
  ".html"         =>      "text/html; charset=utf-8",
  ...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.