REGEX:如何排除包含破折号/连字符的文件名

时间:2014-04-13 13:17:29

标签: regex .htaccess mod-rewrite

我有点疯狂地解决这个问题。

我需要将.htaccess的水印放到网站上的大图像文件中。 我发现了php脚本,它完美无缺。

在.htaccess中我添加了这条规则:

RewriteRule ^images/items/(.*\.(gif|jpg|png))$ watermark.php?image=$1 [NC]

现在我不知道如何过滤jpg图像,因为水印必须只添加到文件名中没有短划线“ - ”的图像中,因为每个项目都有不同的图像尺寸,我只需要应用于大图像版本(没有破折号的那个)

例如:

000001-m.jpg <- don't apply watermark here
000001-ms.jpg <- don't apply watermark here
000001-sm.jpg <- don't apply watermark here
000001.jpg <- this is the right file

我对正则表达不太满意..任何人都可以帮助我吗?

谢谢!

如果这是重复的问题,请将其标记为重复,但请告诉我在哪里可以找到解决方案! ; - )

2 个答案:

答案 0 :(得分:2)

也许像

RewriteRule ^images/items/([^-]+\.(gif|jpg|png))$ watermark.php?image=$1 [NC]

答案 1 :(得分:1)

使用[^-]匹配短划线以外的所有字符:

RewriteRule ^images/items/([^-]*\.(gif|jpg|png))$ watermark.php?image=$1 [NC]