根据此Mozilla article on Ogg media,媒体可以在浏览器中使用X-Content-Duration
标题更加无缝地工作,并以秒为单位显示长度。
假设我将该长度存储在某个地方(当然在数据库中,也可能在文件名本身(video-file-name.XXX.ogv
中,其中XXX
是以秒为单位的时间)),有没有办法形成这个额外的标头只使用Apache .htaccess
设置?我问,因为将文件加载到PHP脚本看起来很笨拙,特别是当PHP默认添加其他禁用缓存的标头时,并且不会正确响应范围(部分内容)请求。是的,很多代码都可以用PHP编写来支持ETag和范围请求,但是当Apache内置了所有这些功能时,只需要添加一个标题似乎就太过分了。
答案 0 :(得分:1)
我没有示例,但您应该能够使用mod_header在.htaccess级别指定HTTP响应标头。
当然,我应该在哪里添加标题的问题实际上取决于您如何访问它。如果您只是想要下载静态资源,那么通过Apache添加它是有意义的。但是,你提到了一个DB。如果您决定将这些文件存储在数据库中,那么您有一些提供该文件的API,在这种情况下,API实现应该附加标题而不是卸载到apache。
此外,如果您想要的动态数据需要处理来确定(它不在文件名或其他内容中),那么您已经使用了一些代码引擎来实现它,只需添加标题。
答案 1 :(得分:1)
这是你用mod_perl扩展做的事情,在允许Apache继续处理它之前拦截这些请求并添加额外的头文件。
一个可能工作的纯PHP方法是让请求使用mod_rewrite通过PHP进行路由,添加额外的头,然后让Apache使用virtual函数处理其余的。
或者,您可以使用持续时间数据库来构建静态.htaccess文件,该文件使用mod_header为每个请求的文件插入正确的持续时间标头。
答案 2 :(得分:1)
这是mod_cern_meta的域名。它允许静态地为文件分配额外的HTTP标头。
您可以使用cron作业,并为每个视频生成* .meta文件。