Ubuntu/Lighttpd 无法使用正确的Content-Type
标头为我的 UTF-8 编码文件提供服务。它发送的是Content-Type: text/html
而不是Content-Type: text/html; charset=UTF-8
。如何配置 Lighttpd 以发送正确的标头?
我在默认设置中没有看到任何有用的设置lighttpd.conf
,并且在查找信息时遇到了麻烦文档。
答案1
默认lighttpd.conf
文件似乎/etc/mime.types
使用 perl 脚本加载 MIME 类型:
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 类型映射。
答案2
我也遇到了同样的问题终于在博客上找到了解决方案
基本上,它是上面提到的 perl 脚本的改进版本,它将 charset=utf-8 声明添加到所有以“text/”开头的 mime 类型,只需替换 perl 脚本并重新启动 lighttpd 即可。
答案3
在 mimes.conf 中为每一行“text/”添加“;charset=utf-8 string”不是更简洁吗?我的意思是:
".css" => "text/css; charset=utf-8",
".html" => "text/html; charset=utf-8",
...