热链接保护的Wordpress.htaccess不显示Wooccommerce电子邮件图像



为了保护Wordpress网站的图像,我在上传文件夹中的.htaccess文件中添加了几行。

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^https://example.com/ [NC]

RewriteRule .? - [S=1]
RewriteRule .(gif|jpg|jpeg)$ - [NC,L,F]

一切正常,尝试访问图片链接的用户会发现一条403消息。然而,我注意到Wooccommerce发送的电子邮件没有显示图像,可能是由于我添加的规则。我该怎么办?

这些(web(邮件客户端很可能完全抑制了Referer标头,因此您需要在规则中允许Referer

然而,这也将允许用户直接";访问图像链接";。但这不是";热链接保护";。热链接是指图像嵌入到第三方网站(在另一个域上(中,并且这仍然应该被阻止(大多数时候(。

例如,修改规则以允许Referer标头:

RewriteCond %{HTTP_REFERER} ^$ [OR]
RewriteCond %{HTTP_REFERER} ^https://example.com/ [NC]
RewriteRule .? - [S=1]
RewriteRule .(gif|jpg|jpeg)$ - [NC,F]

(注意:在上一条规则中,文字点之前缺少反斜杠转义。这里不需要L标志,因为F标志意味着L。(

然而,也有可能网络邮件客户端正在生成一个与托管网络邮件客户端的(自定义(域相关的Referer。您需要检查HTTP请求,以确定这些请求产生了什么Referer。不幸的是,由于网络邮件客户端的多样性,这可能很难/不可能进行可靠的过滤。

如果可能的话,电子邮件中使用的图像应该存储在不同的";无保护";地方

请注意,Referer标头充其量是不可靠的。用户可以选择在浏览器中取消显示Referer标头。网站本身可以在现代浏览器中使用referrer策略来抑制Referer标头(如果你允许空的Referer,这将阻碍你的"热链接保护"(。

最新更新