Lighttpd enviando cabeçalhos errados para conteúdo UTF-8

8

O Ubuntu / Lighttpd não está servindo meus arquivos codificados em UTF-8 com o Content-Typecabeçalho correto . Está enviando Content-Type: text/htmle não Content-Type: text/html; charset=UTF-8. Como faço para configurar o Lighttpd para enviar os cabeçalhos corretos?

Não vi nenhuma configuração útil no padrão lighttpd.confe estou tendo problemas para encontrar informações na documentação .

M. Dudley
fonte

Respostas:

8

O lighttpd.confarquivo padrão parece carregar tipos MIME /etc/mime.typesusando um script perl:

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

Em meus /etc/mime.typesmeus htmlarquivos tinha sido criado para ser servido como text/html. Comentei o include_shellscript perl e adicionei a seguinte entrada mimetype.assign a lighttpd.conf:

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

Não tenho certeza se existe uma solução mais elegante. Usando esse método, eu precisaria copiar todas as entradas /etc/mime.typespara manter os outros mapeamentos de tipo MIME.

M. Dudley
fonte
5

Eu estava tendo o mesmo problema e finalmente encontrei uma solução em um blog

Basicamente, é uma versão melhorada do script perl mencionado acima que adiciona a declaração charset = utf-8 a todos os tipos MIME que começam com "text /". Apenas substitua o script perl e reinicie o lighttpd.

D-zel
fonte
Esta solução é mais elegante, a solução Michael Dudley não é satisfatória como a sua ou a cópia estaticamente todo o conteúdo ou falta mimetypes para todos os dados não-HTML ...
Jocelyn Delalande
0

Não é mais limpo adicionar apenas o `; charset = utf-8 string´ para cada linha "text /" no mimes.conf? Quero dizer, como:

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