mod_rewrite和图像redirect

我有一个网站有很多图片。 假设这些图像存储在“/ data / images”文件夹中。 另外我有一个文件夹与水印图像:“/数据/ wimages”。 原始图像和水印图像的文件名是相同的,但并非所有图像都有其水印副本。 所以,如果水印副本呈现并且通过原始图像,我想要redirect原始图像(不改变其在浏览器或html源代码中的URL)。 我试图用Apache mod_rewrite来解决这个问题:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} -f # Checking if file exists and is a regular file. RewriteCond %{REQUEST_URI} ^.*/data/images/.*\.(gif|jp?g|png)$ [NC] # Is file an image? RewriteRule ^data/images/(.*\.(gif|png|jp?g))$ /data/wimages/$1 [NC] # New watermaked image url. RewriteCond %{REQUEST_FILENAME} !-f # If watermarked image not exists .. RewriteRule ^data/wimages/(.*\.(gif|png|jp?g))$ /data/images/$1 [NC,L] 

那么我正在恢复以前更改的url,并得到一个无限循环!

有任何想法吗?

PS对不起,我的英语。

 RewriteEngine on RewriteCond %{QUERY_STRING} !rewritten RewriteCond %{REQUEST_FILENAME} -f RewriteCond %{REQUEST_URI} ^.*/data/images/.*\.(gif|jpe?g|png)$ [NC] RewriteRule ^data/images/(.*\.(gif|png|jpe?g))$ /data/wimages/$1?rewritten=1 [QSA,NC] RewriteCond %{QUERY_STRING} !^rewritten=2 RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^data/wimages/(.*\.(gif|png|jpe?g))$ /data/images/$1?rewritten=2 [QSA,NC,L]