Chcę pokazać no_picture.png, jeśli obraz nie istnieje. Powinienem to zrobić z .htaccess. Wielkie dzięki.Pokaż no_picture.png przez .htaccess, jeśli obraz nie istnieje
11
A
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
4
ten powinien również pracować:
<FilesMatch "\.(jpg|jpeg|png|gif)$">
ErrorDocument 404 "/no_picture.png"
</FilesMatch>
nie że to nieistniejącego HTML lub inne typy plików będą? – random
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). –