重写URL以在文件扩展名之前将查询字符串值附加到文件名

时间:2014-04-03 09:07:25

标签: regex apache .htaccess mod-rewrite

所以我有一个遗留网站存档了1000个图像网址,如

IMG / 2265 /拇指/ Incubator.jpg?1344891444

它指向的文件位于: IMG / 2265 /拇指/孵化-1344891444.jpg

一些文件是jpegs,pngs等,但它们都遵循连字符的这种模式,然后是查询字符串值,然后是扩展名。 (保持路径的其余部分相同)

到目前为止,我已经获得了Querystring部分,但无法弄清楚如何将其与RewriteRule(?)结合起来以保留文件名但添加匹配的值。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^([0-9]*)$
RewriteRule PATTERN_TO_MATCHJPG|PNG|GIF$ SOMETHING-$1.jpeg [L]

RewriteRule的第一部分应该是重写吗? : - /

感谢任何提示。

更新以精美格式显示答案! * *

RewriteCond %{QUERY_STRING} ^([0-9]+)$

RewriteRule (.+?)\.(png|gif|jpg|jpeg|JPG|JPEG|PNG|GIF)$ $1-%1.$2? [L]

1 个答案:

答案 0 :(得分:1)

您可以使用此规则:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^([0-9]+)$
RewriteRule ^(.+?)\.(png|gif|jpe?g)$ /$1-%1.$2? [L,NC]