2009-09-09 11 views

Odpowiedz

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] 

Złam to, co oznacza każda linia.

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

Sprawdź, czy żądany plik ma rozszerzenie pliku w nawiasach (). W tym przypadku mamy do testowania, czy nazwa pliku kończy się w każdym .jpg, .jpeg, .gif, .png lub .ico

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

Sprawdź, czy plik nie istnieje i nie jest również katalogiem.

RewriteRule .*$ /no_picture.png [L] 

Jeśli żądany zasób/plik pomyślnie przejdzie wszystkie te testy, jest to obraz, który nie istnieje. Prześlij więc obraz no_picture.png do przeglądarki. Zachowa to nazwę pliku. Jeśli chcesz przekierować do no_picture.png pliku, zmienić [L] do [R]

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

w katalogu/images/katalogu, dodać to do .htaccess

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

który mówi, jeśli żądany plik nie istnieje, przepisz go do no_picture.png

+0

nie że to nieistniejącego HTML lub inne typy plików będą? – random

+0

tak, to by było za nic. Dlatego wspomniałem, że był skierowany do konkretnego katalogu z obrazkami. Można go zmienić tak, aby pasował tylko do niektórych rozszerzeń plików (tak jak zrobiły to inne odpowiedzi). –

4

ten powinien również pracować:

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