RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysecondsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://imgur.com/gallery/tASrcBw [NC,R,L]
我正在使用wordpress并将上面的代码粘贴到我的htaccess中,但我仍然看到其他网站使用我托管的图片。为什么呢?
答案 0 :(得分:1)
您当前的重写配置允许任何人通过在地址栏和HTTP_REFERER
标题will not be set中输入其网址来直接访问您的图片,从而使您的第一个条件失败。
# Check other conditions and rewrite rule only if %{HTTP_REFERER} is NOT empty
RewriteCond %{HTTP_REFERER} !^$
除非您使用AND
标记,否则您的条件将隐含[OR]
。当第一个条件失败时,将不会测试其他条件,并且不会重定向到imgurl消息。
RewriteEngine on
# If this condition is true, skip the other conditions and redirect
RewriteCond %{HTTP_REFERER} ^$ [OR]
# Redirect to imgurl only if image requests are NOT from own site references
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysecondsite.com [NC]
# Do the redirection for images
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/tASrcBw.png [NC,R=302,L]