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

使用.htaccess取消子文件夹MP4文件盗链保护失败求助

解决Apache子目录MP4盗链放行无效的问题

问题根源

Apache的Rewrite规则是自上而下叠加执行的,主目录的.htaccess规则会默认作用于所有子目录。你在子目录中仅对图片格式设置了盗链限制,但没有对MP4做任何放行处理,主目录里那条禁止MP4的规则依然会拦截外部引用的MP4请求,这就是为什么子目录的MP4还是无法被外部访问。

解决方案

方案一:修改主目录规则,直接排除/free/下的MP4

调整主目录的.htaccess规则,先跳过/free/路径下的MP4文件,再对其他路径应用盗链保护:

# 排除/free/目录下的MP4,不应用盗链限制
RewriteCond %{REQUEST_URI} !^/free/.*\.mp4$ [NC]
# 对其他路径的媒体文件执行盗链拦截
RewriteCond %{HTTP_REFERER} !^https://www.example.com$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp|mp4)$ - [F,NC]

方案二:在子目录.htaccess中添加MP4放行规则

利用[L]标记让子目录的规则优先执行并终止后续规则,从而绕过主目录的限制:

# 放行当前目录下所有MP4,允许任意来源引用,[L]表示停止后续规则执行
RewriteRule .*\.(mp4)$ - [L]

# 对图片格式继续保留盗链保护
RewriteCond %{HTTP_REFERER} !^https://www.example.com$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]

额外提示

针对你的PHP下载脚本,要确保脚本生成的下载URI直接指向/free/下的MP4文件,或者脚本自身的请求没有被Rewrite规则误拦截。如果脚本是通过内部跳转处理下载逻辑,需确认规则不会影响脚本的正常执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:08:28