Mod-Rewrite到变量结束文件

时间:2012-11-29 23:54:19

标签: apache mod-rewrite

我正在尝试让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}的末尾。 (别担心,我用“〜”替换所有“..”)。

1 个答案:

答案 0 :(得分:1)

Mod-rewrite能够检查是否存在单个特定文件,但您无法在目录中搜索文件模式。请注意,您建议的内容具有可怕的缩放属性,因为系统必须搜索所有文件才能找到您要查找的文件。由于您已经在数据库中拥有该文件,为什么不直接使用id命名文件并在数据库中保留真实文件名?在这种情况下,/ uploaded / 2将返回该位置的文件。你甚至不需要mod_rewrite。