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

用.htaccess保护WordPress图片防外链/直访及排查HTTP_REFERER问题

WordPress图片防盗链及Referer查看方法

需求说明

希望自身WordPress站点页面(示例:https://fixogram.ru/posmotreli-film-prostaya-prosba-15-noyabrya-2025/)能正常显示图片,但禁止以下两种情况:

  • 其他网站引用本站图片
  • 直接访问图片URL(示例:https://fixogram.ru/wp-content/uploads/2025/11/img_20251115_213955-1024x768.jpg)

尝试过的规则及问题

第一段规则

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?fixogram\.ru \[NC,OR\]
RewriteCond %{HTTP_REFERER} ^https?://fixogram\.ru \[NC,OR\]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - \[F,NC\]
</IfModule>

问题:逻辑完全错误,当Referer来自本站时直接返回403,导致站内、站外都无法查看图片。

第二段规则

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} ^https?://(www\.)?fixogram\.ru \[NC,OR\]
RewriteCond %{HTTP_REFERER} ^https://fixogram\.ru \[NC,OR\]
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - \[F,NC\]
</IfModule>

问题:逻辑错误,拒绝了来自本站的非空Referer请求,导致文章页面无法加载图片;同时允许空Referer请求,等于放开了直接访问图片的权限。

一、Chrome浏览器查看HTTP Referer步骤

要确认文章页面加载图片时的Referer信息,按以下操作:

  1. 打开Chrome,访问目标文章页面。
  2. 按下F12打开开发者工具,切换到Network标签。
  3. 刷新页面,在资源列表中找到目标图片(可通过搜索文件名快速定位)。
  4. 点击该图片资源,在右侧Headers面板的Request Headers区域,找到Referer字段,即可查看图片加载时携带的Referer值。

二、正确的Apache Rewrite防盗链规则

以下规则可实现需求:仅允许本站页面加载图片,禁止外链引用和直接访问:

<IfModule mod_rewrite.c>
RewriteEngine On
# 匹配所有非本站来源的Referer(包括空Referer)
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?fixogram\.ru/ [NC]
# 对指定格式的图片返回403禁止访问
RewriteRule \.(jpg|jpeg|png|gif|webp)$ - [F,NC]
</IfModule>

规则说明

  • !^https?://(www\.)?fixogram\.ru/ [NC]:正则匹配所有Referer不是来自本站的请求(空Referer也会被匹配)
  • [F,NC]:F表示返回403 Forbidden,NC表示忽略大小写匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 00:05:19