Lighttpd sending wrong headers for UTF-8 content

lighttpdutf-8

Ubuntu/Lighttpd is not serving my UTF-8 encoded files with the correct Content-Type header. It's sending Content-Type: text/html rather than Content-Type: text/html; charset=UTF-8. How do I configure Lighttpd to send the correct headers?

I didn't see any useful settings in the default lighttpd.conf and am having trouble finding information in the documentation.

Best Answer

The default lighttpd.conf file seems to load MIME types from /etc/mime.types using a perl script:

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

In my /etc/mime.types my html files had been set to be served as text/html. I commented out the include_shell perl script and added the following mimetype.assign entry to lighttpd.conf:

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

I'm not sure if there's a more elegant solution. Using this method I would need to copy in all of the entries in /etc/mime.types to retain the other MIME type mappings.

Related Topic