2009-09-09 8 views

答えて

24
RewriteEngine On 
RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .*$ /no_picture.png [L] 

各行の意味を解説しましょう。

RewriteCond %{REQUEST_URI} \.(jpg|jpeg|gif|png|ico)$ [NC] 

括弧内のファイル拡張子が()であるかどうかを確認してください。この場合、我々は、ファイル名は、ファイルが存在しないことを.jpg.jpeg.gif.pngまたは.ico

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

チェックのいずれかで終わるかどうかを確認するためにテストしていると、それはまた、ディレクトリではありません。

要求されたリソース/ファイルがすべてのテストに合格した場合、それは存在しないイメージです。したがって、no_picture.pngの画像をブラウザに返してください。これにより、ファイル名が保持されます。あなたはno_picture.pngファイル名にリダイレクトしたい場合は、これも動作するはず[R]

1
RewriteCond %{REQUEST_URI} pic/(.*) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule pic/(.*)   pic/no_picture.png [L,E=STATUS:404] 
1

、要求されたファイルが存在しない場合は、no_picture.pngするためにそれを書き換える、と言うあなたの.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule no_picture.png [L] 

にこれを追加し

+0

ない、存在しないHTMLまたは他の種類のファイルが含まれているウィル? – random

+0

はい、それは何でもあります。だから私はそれが特定の画像ディレクトリを目指していたと言いました。特定のファイル拡張子のみに一致するように変更することができます(他の回答が行ったように)。 –

4

[L]を変更します。

<FilesMatch "\.(jpg|jpeg|png|gif)$"> 
ErrorDocument 404 "/no_picture.png" 
</FilesMatch> 
関連する問題