热链接预防不起作用

热链接预防不起作用

我正在尝试阻止我们网站上的图片热链接。我尝试过编辑

/etc/httpd/conf/httpd.conf 在文件末尾添加以下内容:

<VirtualHost *:80>
ServerName www.myserver.co.uk
ServerAlias myserver.co.uk
DocumentRoot /var/www/html/www.myserver.co.uk
ServerPath /www.myserver.co.uk
SetEnvIfNoCase Referer "myserver’.co.uk" local_ref=1
<FilesMatch "’.(gif|jpg|jpeg|png)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

但这似乎不能阻止热链接。我知道我也可以从 .htaccess 文件内阻止热链接,但想知道为什么我通过 httpd.conf 文件执行此操作的尝试失败了?

我也尝试过:

SetEnvIfNoCase Referer "^http://www\.myserver\.co\.uk/" banimages=1
SetEnvIfNoCase Referer "^http://myserver\.co\.uk/" banimages=1
SetEnvIfNoCase Referer "^$" banimages=1
<FilesMatch "\.(gif|png|jpe?g)$">
  Order Allow,Deny
  Allow from env=banimages=1
</FilesMatch>

这也不起作用。我做错了什么?

编辑:我还没有尝试在 httpd.conf 文件末尾放置以下 4 行,而不将它们放在任何标签中,例如 virtualhost 标签:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !=""
RewriteCond %{HTTP_REFERER} !mysite\.co\.uk [NC]
RewriteRule \.(jpe?g|gif|png)$ - [F,NC]

这些图像似乎仍然可以进行热链接。

答案1

相关内容