FLV (Flash Video) 格式在早期視頻網站廣泛使用,但 IIS 預設未註冊 .flv 副檔名對應的 MIME 類型,導致瀏覽器請求返回 404 Not Found 或直接下載而非串流播放。本文提供全版本 IIS 配置標準動作與虛擬主機無權限場景的變通方案。
| 副檔名 | MIME 類型 | 用途 |
|---|---|---|
| .flv | video/x-flv | 標準 FLV 串流播放 (Flash Player / Video.js / flv.js) |
| .flv | flv-application/octet-stream | 舊版 IIS/某些播放器相容用 |
推薦使用 video/x-flv,符合 RFC 標準,現代播放器 (Video.js, flv.js, Clappr) 全支援。
.flv → MIME 類型:video/x-flv → 確定。.flv → MIME 類型:video/x-flv → 確定。:: IIS 7+ AppCmd (需管理員 CMD)
appcmd set config /section:staticContent /+"[fileExtension='.flv',mimeType='video/x-flv']" /commit:apphost
:: PowerShell (WebAdministration 模組)
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/staticContent" -name "collection" -value @{fileExtension='.flv'; mimeType='video/x-flv'}
若服務商鎖死 MIME 配置,無法新增 .flv 映射:
/flv_video/ (名稱任意)。index.html 放入該資料夾 (如 /flv_video/myvideo/index.html,原檔 myvideo.flv)。https://yourdomain.com/flv_video/myvideo/ (以斜線結尾)。index.html 作為預設文檔處理,已註冊 .html MIME (text/html),瀏覽器收到內容後,播放器 (flv.js 等) 依據內容特徵 (Magic Bytes: 46 4C 56 / "FLV") 而非 MIME 類型解碼播放。⚠ 限制:此變通方案不支援範圍請求,導致無法拖曳進度條、無法斷點續傳。生產環境強烈要求服務商開放 MIME 配置或遷移至支援的主機。
若需支援拖曳跳轉,需安裝 IIS 模組:
web.config:
<system.webServer>
<handlers>
<add name="FLVStreaming" path="*.flv" verb="GET" type="FlvStreamingHandler" preCondition="integratedMode" />
</handlers>
</system.webServer>
.flv → Response Headers 含 Content-Type: video/x-flv。curl -I https://domain/video.flv 確認 Content-Type 正確、Accept-Ranges: bytes (偽串流)。