1

这是我正在使用的代码,在@anubhava 的帮助下开发,用于重写由 CGI 脚本生成的路径,以将路径从我的 jpg 图像文件的位置重定向到另一个文件夹,该文件夹包含同一文件夹结构中的水印图像文件组织作为原始文件,但不包括以tn_AM(加号_category_image.jpg)开头的文件:

RewriteRule ^ImageFolio4_files/1/([^/]+)/((?!AM|tn_)[^.]+\.jpg)$ /ImageFolio4_files/cache/images/~$1~$2 [L,R=302,NC]    

原路径:

/ImageFolio4_files/1/Casual_Portraits/abc123_789-xyz.jpg

上面的 RegEx 可以正确生成此输出:

/ImageFolio4_files/cache/images/~Casual_Portraits~abc123_789-xyz.jpg  

我的挑战:我需要在结构下方容纳最多三个文件夹的多文件夹ImageFolio4_files/1/结构。当前的代码不适应这一点。我还需要排除_category_image.jpg出现在下面每个文件夹级别的任何文件ImageFolio4_files/1/(这些文件是出现在类别名称旁边的独特的小显示图标)

我真的不知道如何容纳多文件夹结构,因此将不胜感激。

4

1 回答 1

0

一、改变

([^/]+)/     to     (([^/]+)/)+

在你的表达中。二、改变

(?!AM|tn_)    to    (?!AM|tn_|_category_image.jpg)

您也可以对整个文件名使用负前瞻 (?!),它不会占用字符,只需检查正则表达式 "AM|tn_|_category_image.jpg" 是否在实际位置匹配。

于 2014-01-15T15:27:27.740 回答