2012-02-23 73 views
2

我不知道如何定位的图片在这下面的代码:采用防盗链

RewriteCond %{HTTP_REFERER} !^$ 
RewriteCond %{HTTP_REFERER} !^http://dooomain.com/.*$  [NC] 
RewriteCond %{HTTP_REFERER} !^http://www.dooomain.com/.*$ [NC] 
RewriteRule .*.jpg$ -       [L] 

真的不知道,我必须插入JPG文件!它在Web根文件夹中还是在哪里?

感谢

更新#1

好吧,也许我找到了我的答案,但不知道,所以请人纠正我,如果我错了......

这里代码我应该添加,而不是最后一行在我的主要职位:

RewriteRule \.(gif|jpg)$ https://www.mydooomain.com/pic.gif [R,L] 

我需要把图片放在根这种情况,是吗?

谢谢

回答

4

上面的最后一条规则很好。但rewritecond可以在一行中完成。

RewriteCond %{HTTP_REFERER} !^(?:$|http://domain.com|http://www.domain.com) [NC] 
RewriteRule \.(gif|jpg)$ https://www.mydomain.com/pic.gif [R,L] 
+0

Thanks @Thinking。这非常有帮助。将尽快尝试。 – 2012-02-23 07:50:29

+2

@Digitalsite,你可能还会考虑[R = 301,L]或者确保'pic.gif'上的Expires是访问加1个月分钟,如果你正在获取这些内容。 – TerryE 2012-02-23 08:44:29

+1

是@TerryE是对的​​。 'R = 301'会尽量减少一些,如果不是所有的请求。 – ThinkingMonkey 2012-02-23 08:46:22

0

我正在努力解决同样的问题。 如果我设置基于引用的Apache规则很容易通过: http://www.mustap.com/phpzone_post_62_how-to-bypass-the-referer-se 当然这不是正确的选择。

我的Apache的conf文件:

<Directory /var/www/path> 
    Order allow,deny 
    Deny from all 
    Options -Indexes 
    # Check against the referer, first level check 
    SetEnvIf Referer domain1\.com domain1 
    SetEnvIf Referer domain1\.com domain2 
    <FilesMatch \.(jpg|jpeg|gif|png)$> 
     Order deny,allow 
     Deny from all 
     Allow from env=domain1 
     Allow from env=domain2 
    </FilesMatch> 
</Directory> 

基本上所有的文件被封锁,除了图像,但创建一个简单的PHP文件,我绕过进行了检测。 想法?

+0

我想知道你在哪里写你的代码?是不是应该在服务器根文件**。htaccess ** – 2012-03-06 14:18:27