Назад | Перейти на главную страницу

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

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

В дефолтных настройках не увидел lighttpd.conf и у меня проблемы с поиском информации в документация.

По умолчанию 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.

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

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

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

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