0

我正在尝试让 apache使用以某个目录(例如)/uploaded/2开头的第一个文件来处理任何请求。2/foo/bar/

基本上,如果我有/foo/bar包含内容的目录:

  • 1-filenameclutter.wav
  • 2-clutterinthefilename.mp3
  • 3-someweirdtext.jpg

Web 浏览器发出请求/uploaded/1,apache 会返回1-filenameclutter.wav;请求/uploaded/2将返回2-clutterinthefilename.mp3;等(所有具有正确 mime 类型的文件)。

据我所知,ModRewrite 只能从具有无关数据的源转到文件系统上的简化文件,而不是相反。

你们知道用 ModRewrite 或以另一种方式(没有 PHP)使用 apache 的任何方法吗?

编辑:

需要指出两件事,1)我不关心以相同 id 开头的重复文件。这些文件对应于数据库中的一个对象,该对象具有一个主键 id。2)我这样做的原因是因为我不确切知道文件的扩展名是什么,但我知道 id,所以当我形成这些时,我只是将原始文件名添加到{{id}}-(Don'不用担心,我将所有“..”替换为“~”)。

4

1 回答 1

1

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

于 2012-11-30T00:02:32.603 回答