0

特定のディレクトリ(たとえば)/uploaded/2で始まる最初のファイルを使用して、リクエストを処理するためにapacheを取得しようとしています。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を使用するか、別の方法(PHPなし)でApacheを使用して、これを行う方法を知っていますか?

編集:

指摘すべき2つのこと、1)同じIDで始まる重複ファイルには関心がありません。これらのファイルは、主キーIDを持つデータベース内のオブジェクトに対応します。2)これを行う理由は、ファイルの拡張子が正確にはわからないためですが、IDはわかっているので、これらを作成するときに、元のファイル名を{{id}}-(Don'心配しないでください。すべての「..」を「〜」に置き換えます)。

4

1 に答える 1

1

Mod-rewriteには、特定のファイルが1つ存在するかどうかを確認する機能がありますが、ディレクトリでファイルパターンを検索することはできません。システムは探しているファイルを見つけるためにすべてのファイルを検索する必要があるため、提案しているものには恐ろしいスケーリング属性があることに注意してください。すでにデータベースにファイルがあるので、ファイルにIDを付けて名前を付け、実際のファイル名をデータベースに保持してみませんか?その場合、/ uploaded/2はその場所にあるファイルを返します。mod_rewriteも必要ありません。

于 2012-11-30T00:02:32.603 に答える