1

15000 枚の画像を含むフォルダーがあったので、それらを 10 個のフォルダーに入れることにしました。

15000枚の画像があった最初のフォルダーのURLは次のとおりです。

www.mysite.com/images/games/  

新しいフォルダの URL は次のとおりです。

www.mysite.com/images/games/1/  
www.mysite.com/images/games/2/  
www.mysite.com/images/games/3/  
www.mysite.com/images/games/4/  
www.mysite.com/images/games/5/  
www.mysite.com/images/games/6/  
www.mysite.com/images/games/7/  
www.mysite.com/images/games/8/  
www.mysite.com/images/games/9/  
www.mysite.com/images/games/10/  

正しいフォルダに一致するように画像をリダイレクトして、404 エラーを取り除くにはどうすればよいですか?

4

2 に答える 2

2

上記のコメントであなたの拡張を考えると:

どの画像がどのフォルダに移動するかはわかっていますが、その大きなリストです

そのリストをテキストファイルに入れ、検索と置換(または?)を使用してそのリストをルールawkに変換することをお勧めします。mod_redirect

Redirect /images/games/oldname /images/games/8/oldname

次に、それらを構成ファイルに貼り付けます。これらがディレクトリにどのようにソートされるかを決定する実際のアルゴリズムがない場合、要求をリダイレクトできるプログラムはありません。これは、式を使用する必要があるためです。

于 2013-01-22T03:19:12.793 に答える
2

「リライトを使用しない場合」を引用するのが大好きなのと同じように、これは実際に必要な場合mod_rewriteです。

10個の新しいディレクトリ間で画像をどのように分散したかはわかりませんが、画像には番号が付けられていると思います(たとえば、、、00001.png... 00002.png15000.png。次に、最後の桁を使用して、どの画像がどのフォルダに入るのか、つまりディレクトリに00001.png入るのか、どの画像がディレクトリに入るのかを判断しました(私は、なぜ名前を付けなかったのですか?) ?115000.png100

このサイトで使用しているサーバーについては言及されていないので、Apacheを使用していると仮定します。その場合、適切な構成ファイルを編集します(私はどれを想定しようとしましたが、正直なところ、vhost構成に対する編集権限を持っているか、またはrootを持っているかによって、考えられる4つのうちの1つになる可能性があります。サーバー、またはDebianフレーバーまたはRed-Hatフレーバーのディストリビューションを使用している場合、Linuxを使用していますよね?あなたは言いませんでした。)RewriteEngine Onどこかにあることを確認してから、このようなもの:

RewriteRule ^/images/games/(\d+)(\d)\.png$ /images/games/$2/$1$2.png

...ディレクトリに。10の代わりに名前を付けた場合を除いて0、末尾がすべてのディレクトリの0方向が間違ってしまいます。多分これを試してみるべきですか?

RewriteRule ^/images/games/(\d+0)\.png$ /images/games/10/$1.png [L]
RewriteRule ^/images/games/(\d+)([1-9])\.png$ /images/games/$2/$1$2.png [L]

...そして最初に0をキャッチし、次に他のすべてをキャッチします。

私はこの答えをチェックしますが、あなたはその方法を知るのに十分な情報を私たちに提供してくれませんでした。

于 2013-01-22T02:04:35.033 に答える