You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS与MacOS端Safari下载文件自动添加.txt后缀如何解决

问题原因
  • 头配置语法错误:当前.htaccess里的Header set Content-Description: File Transfer、Header set Content-Transfer-Encoding: binary写法不符合Apache配置规则,HTTP头字段名后不需要加冒号,错误的头格式导致Safari无法正确识别响应的文件类型
  • Content-Disposition未指定文件名:仅设置attachment没有携带filename参数时,Safari会自行根据响应内容推断文件类型,通用的application/octet-stream无法匹配ipa的专属类型,就会默认追加.txt后缀
  • 未对ipa等特殊后缀单独配置正确的MIME类型:iOS的ipa包有专属的MIME标识,统一用application/octet-stream会触发Safari的文件名修正逻辑
可行解决方案

修正后的.htaccess配置如下:

# Prevent Rewrites
RewriteEngine off

# 单独为ipa配置正确的MIME类型和下载头
<Files *.ipa>
    ForceType application/vnd.iphone
    Header set Content-Disposition "attachment; filename=app.ipa"
    Header set Content-Description "File Transfer"
    Header set Content-Transfer-Encoding "binary"
    Header set Pragma "public"
</Files>

# 其他文件通用下载配置
<Files "*.*">
    <FilesMatch "!\.ipa$">
        ForceType application/octet-stream
        Header set Content-Disposition attachment
        Header set Content-Description "File Transfer"
        Header set Content-Transfer-Encoding "binary"
        Header set Pragma "public"
    </FilesMatch>
</Files>

<IfModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options nosniff
</IfModule>

# Disable PHP
php_flag engine off

本次调整核心改动点:

  • 修正了所有HTTP头配置的语法错误,移除了字段名后多余的冒号
  • 为ipa文件单独指定了专属MIME类型application/vnd.iphone,匹配Safari对iOS安装包的识别规则
  • 在Content-Disposition中明确指定了下载文件名,避免Safari自行修改后缀
  • 保留了原有安全配置和PHP禁用规则,不影响原有站点安全策略

如果需要适配apk、plist等其他特殊格式的文件,单独新增对应的Files块配置专属MIME类型即可。

内容的提问来源于stack exchange,提问作者Parsa Yazdani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 06:54:04