2009-09-09 2 views

Répondre

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] 

Décrivons ce que signifie chaque ligne.

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

Vérifiez si le fichier est d'une extension de fichier dans les parenthèses (). Dans ce cas, nous testons pour voir si le nom du fichier se termine dans les deux .jpg, .jpeg, .gif, .png ou .ico

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

Vérifiez que le fichier est pas là et il est pas non plus un répertoire.

RewriteRule .*$ /no_picture.png [L] 

Si une ressource/fichier demandé passe tous ces tests, il est une image qui n'existe pas. Alors servez l'image de no_picture.png dans le navigateur. Cela gardera le nom de fichier. Si vous souhaitez rediriger vers le nom du fichier no_picture.png, changer [L]-[R]

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

Dans votre/images /, ajoutez à votre .htaccess

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

Cela dit, si le fichier demandé n'existe pas, récrire à no_picture.png

+0

Est-ce pas inclure HTML inexistant ou d'autres types de fichiers? – random

+0

oui, ce serait pour tout. C'est pourquoi j'ai mentionné qu'il visait un répertoire d'images spécifique. Il pourrait être modifié pour ne correspondre qu'à certaines extensions de fichier (comme d'autres réponses l'ont fait). –

4

cela devrait aussi fonctionner:

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