2009-09-09 8 views

Respuesta

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] 

Desglosemos lo que significa cada línea.

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

Compruebe si el archivo solicitado es de una extensión de archivo en el paréntesis (). En este caso, estamos probando para ver si el nombre de archivo termina en cualquiera .jpg, .jpeg, .gif, .png o .ico

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

Compruebe que el archivo no existe y tampoco es un directorio.

RewriteRule .*$ /no_picture.png [L] 

Si un recurso/archivo solicitado pasa todas esas pruebas, entonces es una imagen que no existe. Devuelva la imagen de no_picture.png al navegador. Esto mantendrá el nombre del archivo. Si desea redirigir al nombre de archivo no_picture.png, cambiar a [L][R]

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

En el directorio/images /, agregar esto a su .htaccess

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

Eso dice, si no existe el archivo solicitado, reescribirla a no_picture.png

+0

no que incluyen HTML inexistente u otros tipos de archivo? – random

+0

sí, sería para cualquier cosa. Por eso mencioné que estaba dirigido a un directorio de imágenes específico. Se puede cambiar para que coincida solo con ciertas extensiones de archivos (como lo han hecho otras respuestas). –

4

esto también debería funcionar:

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