2009-12-07 7 views
9

Ich bin gespannt, ob es möglich ist, .htaccess zu verwenden, um ein Standardbild zu liefern, wenn ein bestimmtes Bild angefordert wird, das nicht existiert (Hinweis: nur Image-Anforderungen sollten dieses Verhalten auslösen). Ich weiß, dass ich das mit PHP machen könnte, indem ich die Bilder durch ein Skript liefere, aber ich bin eher neugierig, ob dies mit .htaccess statt dessen gemacht werden kann.Standard (Fallback) Bild mit .htaccess?

Angenommen, ich Anfrage /thumbnails/010.gif, die nicht existiert. Wie kann ich .htaccess an Stelle von /thumbnails/default.gif bekommen?

Antwort

10

Ich glaube, das wird für Sie arbeiten. Dieses .htaccess in Thumbnails Verzeichnis und alle URIs unten/thumbnails, die nicht existieren wird direkt

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ default.gif [NC,L] 
+3

Scheint wie es den Trick macht. Können Sie es auf Aufrufe für Bilder und nicht auf fehlende Dateien beschränken? Vielleicht (.png | .jpg | .gif | .jpeg) – Sampson

2

/thumbnails/default.gif Da Sie gerade haben wollen, es zu /thumbnails/ angewendet:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^thumbnails/ thumbnails/default.gif 
1

Wenn Sie nur Bilder aus diesem Verzeichnis senden, könnten Sie die ErrorDocument Anweisung wie folgt nutzen:

ErrorDocument 404 /thumbnails/default.gif 

/thumbnails müssen relativ zu Ihrem DocumentRoot sein.

Ich habe es mit FF getestet und es funktioniert wie versprochen. Es könnte jedoch Probleme mit dem IE "404s nicht anzeigen, die kleiner als einige hundert KB sind" #%? $!