Apache2 提供 MS Publisher 文件,MS Edge/IE 将其作为文本打开

Apache2 提供 MS Publisher 文件,MS Edge/IE 将其作为文本打开

我有一个 Microsoft Publisher 文件。它工作得很好。我在 Linux 上有它,位于 /var/www/html。

Apache2 正在以默认配置运行。

我尝试在 Windows 中的 MS Edge 和 IE 中打开它。它显示为文本(编码损坏或无响应?)而不是下载。我想触发受保护的视图以进行测试。为什么 MS Edge 或 IE 不下载文件,而是将二进制文件内容解释为 HTML?

答案1

文件扩展.pub名不明确,因为它可以引用许多 MIME 类型(其中没有一个是 IANA 分配的媒体类型):

  • SSH 公钥:ASCII 装甲文本文件,text/plain
  • Microsoft Publisher 文档,application/x-mspublisher
  • Corel Ventura Publisher 出版物,application/x-pub

默认情况下,Apache 使用/etc/mime.types添加正确的Content-Type标题。由于没有指定 的值.pub,所以没有Content-Type,浏览器只能进行猜测。

您可以添加特定的 MIME 类型:

application/x-mspublisher                       pub

或者如果您想强制下载,您可以将扩展添加到:

application/octet-stream                        bin deploy msu msp pub

此外,还可以Content-Type使用ForceType指示

<Files "Microsoft.pub">
    ForceType application/x-mspublisher
</Files>

<Files "Corel.pub">
    ForceType application/x-pub
</Files>

<Files "Download.pub">
    ForceType application/octet-stream
</Files>

<Files "SSH-public-key.pub">
    ForceType text/plain
</Files>

# Default for all other .pub files
<Files ~ "\.pub$">
    ForceType text/plain
</Files>

相关内容