Lighttpd 发送错误的 UTF-8 内容标头

Lighttpd 发送错误的 UTF-8 内容标头

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_shellperl 脚本并添加了以下内容mimetype.assign进入lighttpd.conf

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

我不确定是否有更优雅的解决方案。使用此方法,我需要复制所有条目以/etc/mime.types保留其他 MIME 类型映射。

答案2

我也遇到了同样的问题终于在博客上找到了解决方案

基本上,它是上面提到的 perl 脚本的改进版本,它将 charset=utf-8 声明添加到所有以“text/”开头的 mime 类型,只需替换 perl 脚本并重新启动 lig​​httpd 即可。

答案3

在 mimes.conf 中为每一行“text/”添加“;charset=utf-8 string”不是更简洁吗?我的意思是:

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

相关内容