htaccess防止hotlinking图像特定的文件名结构

时间:2016-04-30 04:50:41

标签: php wordpress .htaccess

我在.htaccess文件中有以下内容,它可以正常工作:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteRule \.(jpg)$ /noimageforyou [NC,R,L]

这可以防止所有图像的热链接。但是,我实际上可以使用热链接一些图像。我正在使用WordPress,当您上传图像时,它将创建各种图像大小,例如:

  • imagefile.jpg(original)
  • 镜像文件-150x150.jpg
  • 镜像文件-300x400.jpg

我很高兴允许较小图像尺寸的热链接,而不是原始图像。我想知道是否有办法优化htaccess以排除现在的所有内容,但随后允许使用#x#.jpg中的任何文件名。

1 个答案:

答案 0 :(得分:1)

您需要添加一个条件来过滤掉较小的图像:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.com [NC]
RewriteCond %{REQUEST_FILENAME} !-\d+x\d+\.jpg # Check the end of the filename only - we don't need the beginning part for this check
RewriteRule \.(jpg)$ /noimageforyou [NC,R,L]