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

如何通过Nginx重写URL以MP4格式直接响应视频请求?

Nginx实现URL重写与MP4内容类型响应

要实现将example.com/videos/name/这类请求重写为对应MP4文件并返回正确的内容类型,可以通过Nginx的rewrite指令和内容类型配置完成,具体步骤如下:

核心配置代码

在你的Nginx站点配置的server块中添加以下规则:

# 匹配以/videos/xxx/结尾的请求,重写为对应的.mp4文件
location ~* ^/videos/([^/]+)/$ {
    rewrite ^/videos/([^/]+)/$ /videos/$1.mp4 last;
}

# 处理MP4文件请求,确保返回正确的内容类型
location ~* \.mp4$ {
    # 显式设置MP4的内容类型(若mime.types已配置可省略,但显式设置更稳妥)
    types {
        video/mp4 mp4;
    }
    # 可选:添加缓存优化,和直接请求MP4文件的行为保持一致
    expires 1y;
    add_header Cache-Control "public, immutable";
}

配置说明

  • 第一部分location:

    • 正则^/videos/([^/]+)/$精准匹配/videos/后接任意非斜杠字符、且以斜杠结尾的请求,捕获其中的name部分;
    • rewrite指令将请求URL替换为/videos/name.mp4,last参数表示终止当前location的处理,让Nginx重新匹配新URL对应的规则。
  • 第二部分location:

    • 匹配所有.mp4结尾的请求,通过types指令强制设置响应的Content-Type为video/mp4;
    • 额外添加的expires和Cache-Control头是为了和直接请求MP4文件时的缓存行为保持一致,属于优化项,可根据需求调整或移除。

验证方法

配置完成后重启Nginx,用以下命令测试:

curl -I http://example.com/videos/name/

查看响应头中的Content-Type字段,若显示为video/mp4,且能正常播放视频,则配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:20:27