0

我在一家数字小工具制造商的网站上工作。产品图片来自数百个博客和论坛的热链接。这导致了带宽问题。

我们想用低分辨率版本替换所有热链接图像,使用 .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/

目录,并且它们的名称将与其高分辨率版本相同。

4

1 回答 1

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

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

于 2012-12-17T13:37:37.177 回答