用低分辨率版本替换热链接图像

时间:2012-12-17 12:20:59

标签: regex .htaccess mod-rewrite redirect hotlinking

我正在使用Digital Gadgets Manufacturer的网站。 产品图片来自数百个博客和热门链接。论坛。这导致带宽问题。

我们希望使用低分辨率版本替换所有热链接图像 htaccess的

表示热链接图像路径是

http://www.example.com/products/gadget123/gadget123.png

我们想将其重定向到

http://www.example.com/images/low-res/gadget123.png

热链接图像路径不同,意味着它们可能来自任何目录的子目录。

例如

/images/products/abc/gadget_abc200.jpg
/products/images/abc/gadgetabc5155_packing.png
/downloads/brochures/abc2012/abc2012_user_guide.jpg

etc...

但所有低分辨率图像都在

http://www.example.com/images/low-res/

目录,其名称与高分辨率版本相同。

1 个答案:

答案 0 :(得分:0)

我假设无论原始文件夹如何,高分辨率图像和低分辨率图像之间的文件名始终相同。

RewriteEngine on
RewriteBase /

RewriteCond expr "! %{HTTP_REFERER} -strmatch '*://%{HTTP_HOST}/*'"
RewriteRule ^(images|products|downloads)/[a-zA-z0-9]+/([a-zA-z0-9]+)(\.jpg|\.png|\.gif)$ images/low-res/$2$3

这至少适用于所提供的示例。如果需要考虑其他子文件夹,则需要相应地调整规则。