Lighttpd gửi tiêu đề sai cho nội dung UTF-8


8

Ubuntu / Lighttpd không phục vụ các tệp được mã hóa UTF-8 của tôi với Content-Typetiêu đề chính xác . Nó đang gửi Content-Type: text/htmlchứ không phải Content-Type: text/html; charset=UTF-8. Làm cách nào để định cấu hình Lighttpd để gửi các tiêu đề chính xác?

Tôi không thấy bất kỳ cài đặt hữu ích nào trong mặc định lighttpd.confvà gặp khó khăn khi tìm thông tin trong tài liệu .

Câu trả lời:


8

Tệp mặc định lighttpd.confdường như tải các loại MIME từ /etc/mime.typesviệc sử dụng tập lệnh perl:

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

Trong các tập tin /etc/mime.typescủa tôi htmlđã được thiết lập để được phục vụ như text/html. Tôi đã nhận xét include_shellkịch bản perl và thêm mục mimetype.assign sau vào lighttpd.conf:

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

Tôi không chắc chắn nếu có một giải pháp thanh lịch hơn. Sử dụng phương pháp này, tôi sẽ cần sao chép tất cả các mục vào /etc/mime.typesđể giữ lại các ánh xạ loại MIME khác.


5

Tôi đã có cùng một vấn đề và cuối cùng đã tìm thấy một giải pháp trên một blog

Về cơ bản, đây là phiên bản rút gọn của tập lệnh perl đã đề cập ở trên, bổ sung khai báo charset = utf-8 cho tất cả các loại mime bắt đầu bằng "text /" Chỉ cần thay thế tập lệnh perl và khởi động lại lighttpd.


Giải pháp này thanh lịch hơn, giải pháp Michael Dudley không thỏa mãn vì nó sao chép tĩnh tất cả nội dung hoặc thiếu mô phỏng cho tất cả dữ liệu không phải html
Jocelyn delalande 13/03/13

0

Nó không sạch hơn khi chỉ thêm `; charset = utf-8 chuỗi Chấm cho mỗi dòng "text /" trong mimes.conf? Ý tôi là

  ".css"          =>      "text/css; charset=utf-8",
  ".html"         =>      "text/html; charset=utf-8",
  ...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.