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",
  ...
Пол Бернал
источник