我正在运行WordPress的博客,一个“绅士”正在偷我的post。 我已经决定让自己的生活变得困难,我想阻止我的博客中的盗链图片。
我使用htaccesstools com / hotlink-protection /来生成.htaccess的一部分来防止热链接。
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak.pl [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wojcieh.net [NC] RewriteRule \.(jpg|jpeg|png|gif)$ https://wojcieh.net/wp-content/uploads/2017/06/fuck-you-stealer.gif [NC,R,L]
我创build了testing博客,看看我是否可以将我的图片热链接https://stagingwpblog.wordpress.com/2017/03/13/test-blog-post/和图像仍在显示。
我在这里做错了什么?
由于您正在redirect到“替代镜像”,因此您需要包含一个例外,以便对“替代镜像”的请求不会被redirect,从而创build一个redirect循环(这会导致超时并使服务器更加紧张)。
例如:
RewriteEngine on RewriteCond %{REQUEST_URI} !thou-shalt-not-steal\.gif$ RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak.pl [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wojcieh.net [NC] RewriteRule \.(jpg|jpeg|png|gif)$ https://wojcieh.net/wp-content/uploads/2017/06/thou-shalt-not-steal.gif [NC,R,L]
但是,如果你必须返回一个图像(而不是简单的请求),那么最好是在内部重写请求,而不是redirect。 这样,你的服务器没有得到额外的请求,“替代形象”仍然隐身(更难以窃取!)。 例如:
RewriteEngine on RewriteCond %{REQUEST_URI} !thou-shalt-not-steal\.gif$ RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?marusiak\.pl [NC] RewriteCond %{HTTP_REFERER} !^https://wojcieh\.net [NC] RewriteRule \.(jpe?g|png|gif)$ /wp-content/uploads/2017/06/thou-shalt-not-steal.gif [NC,L]
注意:您只需要为规范主机设置一个条件。
除此之外:您在htaccesstools.com上使用的工具还包含一个附加说明:
注:确保图像不受热连接保护,否则您的服务器可能进入无限循环。
…这是你的代码发生了什么。 但是,他们没有提供必要的代码/指令来执行此操作,所以生成的代码本身不能用于开箱即用。
这很容易。 您的testing网站从https://i1.wp.com/wojcieh.net/wp-content/uploads/2016/02/vcenter-server-6.-upgrade-logo.png下载图片,而不是从您的网站,这就是为什么您的.htaccess无法正常工作。