如何解决mod_rewrite和图像重定向
| 我的网站上有很多图片。假设这些图像存储在文件夹“ / data / images \”中。另外,我还有一个带有水印图像的文件夹:\“ / data / wimages \”。原始图像和带水印的图像的文件名相同,但并非所有图像都有其带水印的副本。因此,如果存在带水印的副本,我想重定向原始图像(在浏览器或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]
然后,我将恢复之前更改的网址并获得无限循环!
有任何想法吗?
附言对不起我的英语不好。
解决方法
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]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。