IIS真正能用的ISAPI-Rewrite图片防盗链规则写法

在 IIS 中,使用 ISAPI_Rewrite 进行图片防盗链的规则可以有效防止外部网站直接链接你的图片资源。下面是一个基本的 ISAPI_Rewrite 规则示例,旨在实现防盗链功能。

防盗链规则示例

# 防盗链规则
RewriteEngine On

# 检查 Referer 头是否存在,并且不允许特定的域名
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain\.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(yourdomain\.com) [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?another-allowed-domain\.com [NC]

# 拒绝访问图片
RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

规则解释

  1. RewriteEngine On: 启用重写引擎。

  2. RewriteCond %{HTTP_REFERER} !^$: 检查 HTTP_REFERER 是否为空。如果为空,表示请求可能是直接访问的,不会被阻止。

  3. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yourdomain.com [NC]: 检查 Referer 是否来自你的网站(yourdomain.com)。[NC] 表示不区分大小写。

  4. RewriteCond %{HTTP_REFERER} !^http(s)?://(yourdomain.com) [NC]: 同上,不区分 www 和非 www 的情况。

  5. RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?another-allowed-domain.com [NC]: 如果你有其他允许的域名,可以在这里添加。

  6. RewriteRule .(jpg|jpeg|png|gif)$ - [F]: 匹配所有的图片文件(jpg、jpeg、png 和 gif),并且拒绝访问(返回 403 Forbidden)。

注意事项

  • 确保将 yourdomain.com 和 another-allowed-domain.com 替换为你自己的网站和其他需要允许的域名。

  • 防盗链规则可能会影响搜索引擎的爬虫行为,因此请确保在配置中允许搜索引擎的 Referer。

  • 测试规则时,确保清除浏览器缓存,避免旧的缓存影响测试结果。

  • 可能需要根据你的具体需求调整规则,以确保不会误拦截合法的访问。

以上是一个基本的防盗链规则,你可以根据实际情况进一步定制和扩展。