如果在my.htaccess中有一些规则:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^.*$ - [NC,L]
RewriteRule ^assets/img(.*)/([a-zA-Z0-9-_\.]*)\.(.*)\.([a-z]{2,4})$ /assets/img$1/.$2.$4/$3.$4 [NC,L]
这会导致/assets/img/path/image.jpg>/assets/img/path/image.jpg
第二条规则:/assets/img/path/image.small.jpg>/assets/img/path/.image.jpg/small.jpg
现在我想检查small.jpg是否存在,所以我将最后一个规则替换为:
RewriteRule ^assets/img(.*)/([a-zA-Z0-9-_\.]*)\.(.*)\.([a-z]{2,4})$ /assets/img$1/.$2.$4/$3.$4 [NC]
RewriteCond %{DOCUMENT_ROOT}/assets/img$1/.$2.$4/$3.$4 !-f
RewriteRule ^assets/img(.*)/([a-zA-Z0-9-_\.]*)\.(.*)\.([a-z]{2,4})$ /assets/img/image.php?path=$1&file=$2.$4&template=$4 [NC,L,QSA]
但那不管用。如果一个文件已经被另一个重写器重写了,有什么办法可以检查它的存在吗?