.htaccess防止图像带宽被盗
当人们从自己的站点链接到您的图像时,他们实际上是在利用您的带宽在其站点上显示图像,这也称为热链接。
阻止人们执行此操作的最简单方法是添加.htaccess文件以仅允许提供本地链接的图像。这将使用引荐来源网址检查链接到您图像的域,如果该域不等于您自己的站点,则将提供其他图像,在本例中为blank.jpg。
RewriteEngine On RewriteBase / RewriteCond %{HTTP_REFERER} !^http://(.+\.)?hashbangcode\.com/ [NC] RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.co\.uk/ [NC] RewriteCond %{HTTP_REFERER} !^http://(.+\.)?google\.com/ [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/blank.jpg [L]
您还可以通过使用以下.htaccess文件来防止从高流量站点(如myspace)进行热链接。
RewriteEngine On RewriteBase / RewriteCond %{HTTP_REFERER} ^http://(.+\.)?myspace\.com/ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?blogspot\.com/ [NC,OR] RewriteCond %{HTTP_REFERER} ^http://(.+\.)?livejournal\.com/ [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/blank.jpg [L]
代替返回空白图像,您可以使用FRewriteRule标志来产生403Forbidden错误。
RewriteRule.*\.(jpe?g|gif|bmp|png)$-[F]
另一种方法是使用mod_setenvif模块来确定引荐来源网址的名称。首先,您需要进入Apachehttpd.conf文件,并确保启用了mod_setenvif模块。
LoadModulesetenvif_modulemodules/mod_setenvif.so
如果未启用,则取消注释该行,然后重新启动Apache。该模块通常默认情况下处于打开状态,因此应在大多数主机上启用。
接下来,将以下.htaccess文件上传到您的根目录,用您自己的域名替换。
SetEnvIfNoCase Referer "^http://www.hashbangcode.com/" locally_linked=1 SetEnvIfNoCase Referer "^http://www.hashbangcode.com$" locally_linked=1 SetEnvIfNoCase Referer "^http://hashbangcode.com/" locally_linked=1 SetEnvIfNoCase Referer "^http://hashbangcode.com$" locally_linked=1 SetEnvIfNoCase Referer "^$" locally_linked=1Order Allow,Deny Allow from env=locally_linked
此方法只是停止提供图片,而不是显示其他图片。
但是,您无法采取任何措施阻止人们从您的站点下载图像并在自己的站点上使用它们。如果您的图片仍然拥有版权,那么您将需要直接与该网站联系以获取删除它们的图片。