データベースには多くのレコードがあり、各レコードには画像があります。画像を保存する方法についてかなり混乱しています。
/img/record-id.jpg
アクセスルートを(つまり)のようにしたい/img/15178.jpg
。
すべての画像を /img/ 内に保存するのは良くありません。
この質問では、画像の名前を逆にすることが提案されているため、上記の例は に保存され/img/78/51/15178.jpg
ます。この提案は、他のシナリオに関する詳細情報を提供しません (私にとっては明らかではありません)。ID が 5、15、128、1517 のような小さい数字の場合はどうなりますか (これは最後のコメントで回答を求められます)。
それはさておき、パスを にしたいことを思い出しましょう/img/15178.jpg
。Apache を使用してリクエストをリダイレクトしますが、そのためには、異なる ID 番号に対して少なくとも 3 つ以上のルールを入力する必要があります。
^/img/(\d)(\.jpg)$
/img/$1$2^/img/(\d\d)(\.jpg)$
/img/$1/$1$2^/img/(\d\d)(\d\d)(\.jpg)$
/img/$1/$2/$3- 等々?
これはうまく機能しますが、良い解決策ではないようです。
イメージの MD5 を取得し、それぞれのレコードに保存し、リクエストを PHP スクリプトにリダイレクトして、出力を処理させるという他のオプションを考えることができます。
スクリプトは、データベース内の ID の MD5 を検索し、ハッシュから実際のルートを構築し、画像を出力します。このソリューションはより優れていますが、データベースと PHP を使用して画像を出力するため、少し多すぎるように思えます。
ここで何をすべきか本当にわかりません。アドバイスをいただけませんか?