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

如何为指定URL路径排除Apache Hotlink Protection(盗链保护)?

解决盗链保护规则中排除特定路径的问题

我来帮你搞定这个问题~你之前添加的排除规则没生效,核心原因是匹配条件写得不对:

你用的RewriteCond %{REQUEST_URI} !/admin/thumbs$是在匹配路径刚好以/admin/thumbs结尾的请求,但你的目标URL是/admin/thumbs/image.jpg——路径里/admin/thumbs后面还有文件名,这个条件根本匹配不上,自然不会跳过盗链检查。

正确的规则写法

调整排除条件,让它匹配所有以/admin/thumbs/开头的请求(注意后面的斜杠,避免误匹配类似/admin/thumbsup/这类路径),同时还可以优化一下原有重复的Referer检查条件,让规则更简洁:

RewriteEngine on

# 首先排除/admin/thumbs/下的所有资源,跳过后续盗链检查
RewriteCond %{REQUEST_URI} !^/admin/thumbs/ [NC]

# 检查Referer是否来自自家域名(合并原有的两个条件,更简洁)
RewriteCond %{HTTP_REFERER} !^https://(www\.)?domain(.*)?$ [NC]

# 对指定后缀的文件返回403禁止访问
RewriteRule \.(gif|GIF|jpg|JPG|PNG|png|jpeg|JPEG|mp4|MP4|mkv|MKV|webm|WEBM|ico|ICO)$ - [F]

关键细节说明

  • RewriteCond %{REQUEST_URI} !^/admin/thumbs/ [NC]:!^表示“不以指定字符串开头”,[NC]开启忽略大小写匹配,这样所有/admin/thumbs/xxx.jpg这类路径的请求都会直接跳过后续的盗链检查。
  • 合并后的Referer条件:用一个规则就可以覆盖“域名本身”和“域名带后续路径”的情况,避免重复写两个几乎一样的条件。

测试注意事项

修改规则后,记得清空浏览器缓存或者用隐私模式测试——因为浏览器可能缓存了之前的403禁止响应,导致新规则看起来没生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:18:34