在我的网页上,我有这样的图片链接:
img/123456765/mypicture.jpg (<img src="img/123456765/mypicture.jpg" />)
img/2534/anotherpicture.jpg
其中,数字文件夹是图像文件的最后修改时间,以秒为单位,例如的strtotime(filemtime(mypicture.jpg))。它们是浏览器缓存刷新的虚拟路径,而不是真实路径。
我希望apache能够自动将这些链接更改为以下网址:
img/mypicture.jpg
img/anotherpicture.jpg
基本上,我想在图像路径中删除该数字文件夹。
我正在尝试构建的Mod_rewrite指令看起来像这样:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^img/([a-zA-Z0-9-_]+)/\.(jpg|jpeg|gif|bmp|png)$ img/ [L]
我是mod_rewrite的新手,所以我不确定这些说明是否正确。如果我错了,有人可以纠正我吗?我很感激!谢谢!
答案 0 :(得分:1)
你走在正确的轨道上,但你想要这样的东西:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^img/[a-zA-Z0-9-_]+/(.*\.(jpg|jpeg|gif|bmp|png))$ img/$1 [L]
正则表达式^img/[a-zA-Z0-9-_]+/(.*\.(jpg|jpeg|gif|bmp|png))$
对匹配.*\.(jpg|jpeg|gif|bmp|png)
有一个反向引用($ 1),基本上是在“img /”之后的数字和字母后面的任何内容。这将重写:
img/123456765/mypicture.jpg to img/mypicture.jpg
img/2534/anotherpicture.jpg to img/anotherpicture.jpg