2012-02-17 13 views
1

ユーザがPNG画像を要求します。例:http://server/myfolder/subfolder/1234.png。その.pngが存在しない場合は、代わりに.gifという同じ名前の同じフォルダに、.gifという拡張子が存在する必要があります。.htaccessルールスタッキングと404リダイレクト

もう1つの追加は、私が最近確認したURLが変更されている可能性があるため、ディレクトリ構造を変更したことです。たとえば、上記のURLには、直接http:// server/myfolder/subfolder/1234.pngまたはhttp://server/oldfolder/1234.pngのいずれかを要求することによって到達する必要があります。ディレクトリ構造の変化のように表すことができる。両方のディレクトリに

RewriteRule oldfolder/(.*) myfolder/subfolder/$1 [L,QSA] 

、私は、ファイルが存在するかどうかをチェックし、必要であれば代わりに異なる画像を使用する必要があります。どんな助けでも大歓迎です。

答えて

2

サイトのルートディレクトリにある.htaccessファイルに次を追加してください。

変更されたファイル構造でも動作するはずです。

RewriteEngine on 
RewriteBase/

#if the file does not exist 
RewriteCond %{REQUEST_FILENAME} !-f 
#and is in any of these folders: /myfolder/subfolder or /folder1 or /folder2 
RewriteCond %{REQUEST_URI} ^/(myfolder/subfolder|folder1|folder2)/ [NC] 
#and its a png, then try to serve the gif instead 
RewriteRule ^(.+)\.png$ $1.gif [L,NC]  
+0

すべての画像をリダイレクトできませんか?私はそれが特定のサブディレクトリでのみ有効にしたい、他の場合にはイメージが存在しない場合は通常の404が欲しい。 – user1216597

+0

@ user1216597存在しないすべての.pngイメージをリダイレクトします。特定のフォルダにのみ適用するように編集しました。これらは、必要なフォルダに合わせて変更できます。 –

関連する問題