如何在 nginx 中为 tar.bz2 或 tar.gz 文件定义 mime 类型?

如何在 nginx 中为 tar.bz2 或 tar.gz 文件定义 mime 类型?

我尝试将这些行添加到 mime.types:

application/x-gtar tar.gz tgz tar.bz2 tbz2 tbz;
application/x-bzip2 bz2;
application/x-gzip  gz;

但是 nginx 报告 tar.bz2 文件为“Content-Type: application/x-bzip2”。我该如何修复?

附加问题:tar.bz2/tbz2 文件的正确 mime 类型是什么?不同的来源给了我各种不同的答案:application/x-gtar、application/x-compressed-tar、application/x-bzip-compressed-tar、application/x-tar-bz2、application/x-bzip2 等。tar.gz/tgz 也一样

答案1

/etc/mime.types文件中有一个免责声明:

注意:诸如“gzip”、“bzip”和“compress”之类的压缩方案实际上不是“mime 类型”。它们是“编码”,因此必须不是此文件中有条目来映射其扩展名。编码文件的“mime 类型”是指已编码的数据的类型,而不是编码的类型。

这意味着您应该application/x-tar映射 tarball,而不是为每种压缩方法单独设置内容类型。

/etc/mime.types例如,您可以安全地从中复制它。

答案2

您可能可以使用HttpHeadersMore模块Content-Type如果 URL 以某个扩展名结尾,则使用一些正则表达式匹配来覆盖。

答案3

根据conf/mime.类型,看来 nginx 不支持这种 mime 类型。

相关内容