0

我有一个脚本可以在图像上放置水印。

我想要一个 RewriteRule,它将排除文件夹内的图像(拇指和拇指配置文件)。意味着此文件夹中的图像不会被加盖水印

目前我有这个

RewriteRule ^([^/thumb|^/profilethumb].*\.(gif|jp?g|png))$ watermark.php?image=$1&watermark=watermark.png [NC]

问题是它没有在 (thumb) 中的图像上添加水印,这是正确的,但它仍然在文件夹 (profilethumb) 中添加水印。

4

3 回答 3

2

结合条件试试这个规则:

RewriteCond %{REQUEST_URI} !^/(profile)?thumb(/.*)?$ [NC]
RewriteRule ^.*\.(gif|png|jpe?g)$ watermark.php?image=$0&watermark=watermark.png [L,NC]
于 2013-04-19T11:19:21.700 回答
1

也许这就是你需要的:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  !/(thumb|profilethumb) [NC]
RewriteCond %{REQUEST_URI}  !watermark\.php        [NC]
RewriteCond %{REQUEST_URI}  /([^.]+)\.(gif|jpg|jpeg|png) [NC]
RewriteRule .*  /watermark.php?image=%1.%2&watermark=watermark.png [NC,L]

我猜只有图像并且从规则中排除两个目录就足够了/thumb/profilethumb如果还有其他文件,我认为您也不希望它们有水印。

于 2013-04-19T09:40:08.987 回答
0

您可以先跳过这两个目录thumbprofilethumb使用RewriteRule不替换 URL 路径的 ,然后使用第二条规则处理所有其他图像

RewriteRule ^(?:thumb|profilethumb).*\.(?:gif|jpe?g|png)$ - [L,NC]
RewriteRule ^.*\.(?:gif|jpe?g|png)$ watermark.php?image=$0&watermark=watermark.png [L,NC]
于 2013-04-19T11:47:47.307 回答