所以这是我的代码:
1851-01-01 00:00
1851-01-01 06:00
但我在RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://my-site.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://my-site.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.my-site.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.my-site.com$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|)$ http://www.my-site.com/dontsteal.png [R,NC]
diretory中有这个.htaccess文件。我不喜欢从images
移动dontsteal.png
文件,因为文件树变得杂乱无章。如果我将其放入,热链接保护将影响它。如果我将.htaccess文件移动到子级目录中,我将不得不更改我的所有图像images
...因此我需要在文件src
中添加一个例外,以便它在dontsteal.png
目录并且不受上述代码的影响。有什么想法吗?
答案 0 :(得分:1)
您可以改用以下内容:
RewriteEngine on
# Check that the file exists
RewriteCond %{REQUEST_FILENAME} -f
# Check we're not being referred from our own domain
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?my-site\.com [NC]
# Check that the request is not fot the hotlink image
RewriteCond %{REQUEST_URI} !^/images/dontsteal\.png$ [NC]
# If all the above conditions are met, redirect to the hotlink image
RewriteRule \.(jpg|jpeg|png|gif)$ http://my-site.com/images/dontsteal.png [NC,R,L]
在这里,我已将原始条件压缩为一个,并添加了对HTTPS的支持(如果您决定使用它,则总是很方便)。主要部分是如果图像请求(文件名)以dontsteal.png
结尾,则跳过重定向的新条件。这样,您可以将图像放在任何您喜欢的位置。
更新:添加了新条件以确保所请求的文件确实存在 - 我们并非真的需要保护不会出现的图像。