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 .

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.


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.


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",
  ...
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.