如何通过.htaccess仅阻止特定域名的盗链行为
针对特定域名阻止盗链的.htaccess配置修改方案
你之前的规则逻辑是允许自己站点的请求,拦截所有其他站点,现在要改成只拦截domain-name.example这个特定域名的盗链,其他所有来源(包括自己的站点、其他合法站点、空referer)都允许正常访问图片,修改后的配置如下:
# 当请求来源是 domain-name.example(含http/https、可选www前缀)时 RewriteCond %{HTTP_REFERER} ^https?://(www\.)?domain-name\.example(/.*)?$ [NC] # 匹配指定格式的图片文件,重定向到自定义图片 RewriteRule \.(gif|jpg|jpeg|png|webp)$ https://image.example/img/logo.jpg [R=301,L]
关键逻辑说明:
- 只保留一条
RewriteCond,精准匹配来源为domain-name.example的请求([NC]表示忽略大小写,兼容大小写不同的域名写法) ^https?://同时匹配http和https协议;(www\.)?兼容带www前缀的www.domain-name.example;(/.*)?$匹配域名后是否有路径,保证完整匹配该域名下的所有页面请求- 只有当请求来自这个特定域名时,才会触发图片重定向,其他所有来源的请求都不受影响
补充说明:
如果不需要兼容www前缀,直接把(www\.)?删掉即可,改成:
RewriteCond %{HTTP_REFERER} ^https?://domain-name\.example(/.*)?$ [NC] RewriteRule \.(gif|jpg|jpeg|png|webp)$ https://image.example/img/logo.jpg [R=301,L]
内容的提问来源于stack exchange,提问作者Astrit Shuli
相关产品推荐
相关产品推荐

