Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

IIS 7 一鍵配置 MIME 類型支援所有文件後綴下載

編輯:關於伺服器

IIS 7 預設 MIME 映射表較為保守,導致 .apk、.ipa、.3gp、.flv 等新興文件類型無法直接下載,返回 404.3 Not Found。逐個添加極其繁瑣且易遺漏。本文介紹通過添加通配符 .* 映射至 application/octet-stream 的「一勞永逸」方案,並說明安全性考量與替代最佳實踐。

問題現象

  • 瀏覽器訪問 https://site.com/app.apk 返回 HTTP 404.3 – Not Found,詳細錯誤:The page you are requesting cannot be served because of the extension configuration.
  • IIS 日誌記錄 sc-status=404 sc-substatus=3。

通配符解決方案 (適用於單站點/全局)

  1. 打開 IIS 管理器 (inetmgr),選中目標網站 (或「伺服器」節點配置全局)。
  2. 雙擊「MIME 類型」圖標。
  3. 右側操作欄點擊「添加...」。
  4. 在彈出對話框填寫:
    文件名副檔名:.*
    MIME 類型:application/octet-stream
  5. 點擊「確定」完成。

原理:.* 匹配任意副檔名,application/octet-stream 表示「二進制流」,瀏覽器收到此 Content-Type 會彈出「另存為」下載對話框,而不嘗試直接打開。

命令行批量配置 (適合自動化部署)

使用 appcmd.exe 可腳本化配置,避免手動點擊:

# 為指定站點添加 (需管理員權限 CMD/PowerShell)
%windir%\system32\inetsrv\appcmd.exe set config "Default Web Site" -section:staticContent /+"[fileExtension='.*',mimeType='application/octet-stream']" /commit:apphost

# 為全局 (所有站點繼承) 添加
%windir%\system32\inetsrv\appcmd.exe set config -section:staticContent /+"[fileExtension='.*',mimeType='application/octet-stream']" /commit:apphost

安全性風險與緩解措施

風險:.* 會導致 無副檔名文件 (如 Linux 隱藏文件 .gitignore、.env、web.config 等) 也被作為二進制下載,洩露敏感配置。

緩解方案:

  1. 優先使用精確映射:僅添加業務確實需要的副檔名 (.apk, .ipa, .apk 等),雖繁瑣但最安全。
  2. 配合 requestFiltering 隱藏敏感文件:
    appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"hiddenSegments.[segment='.git']" /commit:apphost
    appcmd.exe set config "Default Web Site" -section:system.webServer/security/requestFiltering /+"fileExtensions.[fileExtension='.env',allowed='false']" /commit:apphost
  3. 設置預設文檔優先級:確保目錄瀏覽關閉,default.aspx/index.php 等優先於通配符匹配。

最佳實踐建議

場景推薦策略
生產環境 Web 應用精確添加業務所需 MIME (apk, ipa, apk, dmg, pkg 等),嚴禁 .*
純靜態文件下載站 / CDN 邊緣節點可啟用 .* + requestFiltering 隱藏敏感後綴
開發/測試環境.* 可接受,便利優先

驗證方法

# PowerShell 測試
Invoke-WebRequest -Uri "https://localhost/test.apk" -Method Head
# 檢查響應頭 Content-Type: application/octet-stream

# 或瀏覽器開發者工具 Network 面板查看響應頭

通過精確配置 MIME 映射並配合請求過濾,既能滿足多樣化文件下載需求,又能守住 Web 服務器的安全底線。

Copyright © Windows教程網 All Rights Reserved