我有一个 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>