我需要将所有以“t”开头的文件从一个目录重写到另一个目录。
从/gallery/tXYZ.ext
到/gallery/thumbnails/thumbs_XYZ.ext
我对此RewriteRule有疑问:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^gallery/t(.*)$ /gallery/thumbs/thumbs_$1 [R=301,NC,L]
因为它再次捕获thumbs
目录(以“t”开头)并且永远循环发生。
答案 0 :(得分:1)
问题是单词thumbs
也匹配t*
模式并导致重定向循环。
使用此规则修复它:
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} !^/gallery/thumbs/ [NC]
RewriteRule ^gallery/t(.*)$ /gallery/thumbs/thumbs_$1 [R=301,NC,L]
或者其他:
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^gallery/t(?!humbs/)(.*)$ /gallery/thumbs/thumbs_$1 [R=301,NC,L]