【发布时间】:2011-05-29 16:46:32
【问题描述】:
我在 .htaccess 中有一个重写规则
RewriteRule (.+?\.fid)/ /$1 [L]
请求 URI 如下:/123.fid/myfile.webm
如何使用包含上述规则的 .htaccess 将 mime 类型强制为:video/webm?
我已经尝试过在 .htaccess 文件的顶部添加但没有成功:
AddType video/webm .webm
和
<FilesMatch "\.webm$">
ForceType video/webm
</FilesMatch>
我使用 apaches mime_magic 模块来查找 .fid 文件的 mime 类型,但这不适用于 webm 文件。我假设它是导致文件类型问题的 RewriteRule,我需要以某种方式在请求 uri 中查找 webm。
如果我这样做:AddType video/webm .fid 发送了正确的 mime 类型 - 但这会破坏存储在 .fid 中的任何其他文件格式。使用 .fid 是设计要求,不能更改。
*编辑:
我也尝试过:
RewriteCond %{REQUEST_URI} \.webm$
RewriteRule .* - [T=video/webm]
和
RewriteRule \.webm$ - [T=video/webm]
结果相同。提供的 mime 类型是 text/plain。这可能是 mime_magic 模块干扰吗?
我还尝试添加:DefaultType video/webm 有效。这是目前最接近解决方案的方法,因为 mime_magic 模块似乎可以找到要发送的正确 mime 类型,但我认为这不是一个特别优雅的解决方案
*Edit2:AddType video/webm .fid 工作正常 - 我如何根据请求 uri 有条件地执行 AddType?
【问题讨论】:
-
您提供的是真实文件还是虚拟 URL?
-
.fid 文件是真实文件,而我重写 url 以包含 myfile.webm
标签: apache .htaccess mod-rewrite mime-types webm