Lighttpd отправляет неправильные заголовки для контента UTF-8


8

Ubuntu / Lighttpd не обслуживает мои файлы в кодировке UTF-8 с правильным Content-Typeзаголовком. Это отправка, Content-Type: text/htmlа не Content-Type: text/html; charset=UTF-8. Как мне настроить Lighttpd для отправки правильных заголовков?

Я не увидел никаких полезных настроек по умолчанию lighttpd.confи не могу найти информацию в документации .

Ответы:


8

lighttpd.confКажется, что файл по умолчанию загружает MIME-типы из /etc/mime.typesсценария perl:

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

В моих /etc/mime.typesмоих htmlфайлах было установлено, чтобы служить text/html. Я закомментировал include_shellскрипт perl и добавил следующую запись mimetype.assign в lighttpd.conf:

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

Я не уверен, есть ли более элегантное решение. Используя этот метод, мне нужно будет скопировать все записи, /etc/mime.typesчтобы сохранить другие сопоставления типов MIME.


5

У меня была та же самая проблема, и наконец нашел решение в блоге

По сути это упрощенная версия вышеупомянутого сценария perl, которая добавляет объявление charset = utf-8 ко всем типам mime, начинающимся с «text /». Просто замените сценарий perl и перезапустите lighttpd.


Это решение более элегантно, решение Майкла Дадли не удовлетворяет, так как оно либо статически копирует весь контент, либо отсутствует mimetypes для всех не HTML-данных ...
Джоселин Делаланд

0

Нелегко просто добавить `; charset = utf-8 string´ для каждой строки «text /» в mimes.conf? Я имею в виду, как:

  ".css"          =>      "text/css; charset=utf-8",
  ".html"         =>      "text/html; charset=utf-8",
  ...
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.