2009-09-09 21 views

cevap

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] 

Her satırın ne anlama geldiğiyle ilgili olarak onu bozalım. İstenen dosya parantez () bir dosya uzantısının ise

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

kontrol edin. Bu durumda, biz dosya adı dosya olmadığını .jpg, .jpeg, .gif, .png veya .ico

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

kontrol edin ya biter olmadığını görmek için test ediyoruz ve aynı zamanda bir dizin değil.

RewriteRule .*$ /no_picture.png [L] 

İstenilen bir kaynak/dosya tüm bu testlerden geçerse, bu, mevcut olmayan bir görüntüdür. Yani tarayıcıya no_picture.png görüntüsünü geri sunun. Bu dosya adını tutacaktır. Eğer no_picture.png dosya adına yönlendirmek istiyorsanız, bu da çalışması gerekir [R]

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

, istenen dosya yoksa, no_picture.png için yeniden yazmak diyor senin .htaccess

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

eklemek bu

+0

değil varolmayan HTML veya diğer dosya türlerini içerdiğini edecek mi? – random

+0

evet, her şey için olurdu. Bu yüzden belirli bir resim dizini hedeflediğini belirttim. Sadece belirli dosya uzantılarıyla eşleşmek için değiştirilebilir (diğer cevaplar yapıldığı gibi). –

4

için [L] değiştirin:

<FilesMatch "\.(jpg|jpeg|png|gif)$"> 
ErrorDocument 404 "/no_picture.png" 
</FilesMatch> 
İlgili konular