我正在尝试让apache为/uploaded/2
的任何请求提供第一个以2
开头的文件(例如/foo/bar/
)。
基本上,如果我的目录/foo/bar
包含内容:
1-filenameclutter.wav
2-clutterinthefilename.mp3
3-someweirdtext.jpg
网页浏览器发出/uploaded/1
请求,apache会返回1-filenameclutter.wav
;请求/uploaded/2
将返回2-clutterinthefilename.mp3
;等(所有具有正确mime类型的文件)。
据我所知,ModRewrite只能从具有无关数据的源转到文件系统上的简化文件,而不是相反。
你们有没有办法用ModRewrite或者用另一种方式使用apache(没有PHP)?
编辑:
要指出的两件事,1)我不关心以相同ID开头的重复文件。这些文件对应于数据库中的对象,该对象具有primarykey,id。 2)我这样做的原因是因为我不确切知道文件的扩展名是什么,但我知道id,所以当我形成这些时,我只是将orignal文件名添加到{{1}的末尾。 (别担心,我用“〜”替换所有“..”)。
答案 0 :(得分:1)
Mod-rewrite能够检查是否存在单个特定文件,但您无法在目录中搜索文件模式。请注意,您建议的内容具有可怕的缩放属性,因为系统必须搜索所有文件才能找到您要查找的文件。由于您已经在数据库中拥有该文件,为什么不直接使用id命名文件并在数据库中保留真实文件名?在这种情况下,/ uploaded / 2将返回该位置的文件。你甚至不需要mod_rewrite。