2009-12-07 11 views
9

Tengo curiosidad si es posible usar .htaccess para mostrar una imagen predeterminada cuando se solicita una imagen en particular que no existe (nota: solo las solicitudes de imágenes deben plantear este comportamiento). Sé que podría hacer esto con PHP al servir las imágenes a través de un script, pero me da más curiosidad si esto se puede hacer con .htaccess en su lugar.Imagen predeterminada (de respaldo) con .htaccess?

Supongamos que solicito /thumbnails/010.gif, que no existe. ¿Cómo podría obtener .htaccess para servir /thumbnails/default.gif en su lugar?

Respuesta

10

Creo que esto funcionará para usted. Coloque esta .htaccess en el directorio de imágenes en miniatura y los URI debajo/miniaturas que no existen dirigirá a /thumbnails/default.gif

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

Parece que es el truco. ¿Puedes restringirlo solo a llamadas de imágenes, en lugar de a archivos perdidos? Quizás (.png | .jpg | .gif | .jpeg) – Sampson

2

Ya que sólo quieren tener lo aplicó a /miniaturas/:

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

Si envía sólo imágenes desde este directorio, se podría utilizar la declaración ErrorDocument así:

ErrorDocument 404 /thumbnails/default.gif 

/thumbnails debe ser relativo a su DocumentRoot.

Lo probé con FF y lo hace según lo prometido. Sin embargo, podría haber problemas con IE "No mostrar 404s que son más pequeños que algunos cientos KB" #%? $!