WordPress站点WebM视频兼容IE的.htaccess规则失效求助
WebM转MP4的.htaccess规则失效解决思路
调整规则位置
WordPress默认的.htaccess规则块(# BEGIN WordPress至# END WordPress)会优先执行,你的重写规则必须放在这个块之前,否则会被WordPress的规则覆盖,无法触发。
修正匹配逻辑与补充标志
优化HTTP_ACCEPT匹配
原规则的!video/webm匹配不够精准,部分浏览器的Accept头中video/webm可能不是单独存在,可修改为:
RewriteCond %{HTTP_ACCEPT} !video/webm(?:,|$) RewriteCond %{DOCUMENT_ROOT}/$1.mp4 -f RewriteRule (.+)\.webm$ $1.mp4 [T=video/mp4,L,E=REQUEST_video]
添加L标志(Last),确保执行完该规则后终止后续规则处理,避免被其他规则覆盖。
针对IE浏览器补充规则
如果仅需针对IE兼容,可直接匹配IE的User-Agent,更精准:
RewriteCond %{HTTP_USER_AGENT} MSIE [1-9]\. | Trident/ RewriteCond %{DOCUMENT_ROOT}/$1.mp4 -f RewriteRule (.+)\.webm$ $1.mp4 [T=video/mp4,L]
验证文件与权限
- 确认对应路径下的MP4文件存在,直接访问MP4链接(如
https://website.com/wp-content/uploads/2022/08/test.mp4)测试是否能正常打开。 - 检查MP4文件的权限,确保Apache服务器拥有读取权限,权限设置与WebM文件保持一致。
测试规则有效性
- 使用IE浏览器访问WebM链接,通过开发者工具的网络面板查看请求是否被重定向到MP4。
- 用curl模拟IE请求头测试:
curl -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko" -I https://website.com/wp-content/uploads/2022/08/test.webm
观察返回的Content-Type是否为video/mp4,或是否存在跳转标识。
内容的提问来源于stack exchange,提问作者hhh
相关产品推荐
相关产品推荐

