2010-06-10 3 views
5

Tous les éléments d'image de mon application Rails se trouvent dans /public/images et sont fournis par Apache s'ils existent sur le serveur. Si une requête pour une image manquante est faite, Apache ne peut pas la servir pour qu'elle soit transmise à Rails qui en déclenche un 404.Comment configurer Apache pour gérer les éléments d'image manquants?

Idéalement, je voudrais qu'une demande d'image manquante soit traitée au niveau d'Apache , plutôt que d'être transmis à Rails. Comment puis-je y arriver?

Répondre

2

Redirection avec mod_rewrite vers une page 404 si le répertoire et le fichier n'existent pas.

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule .? /404.html [L] 

Ici, -f correspond à un nom de fichier existant et -d correspond à un nom de répertoire existant. Cela vérifiera que le nom de fichier demandé n'est pas un nom de fichier ou un nom de répertoire existant avant qu'il ne redirige vers la page 404 (ou ce que vous voulez).

+0

Les routes Rails "virtuelles" n'auront pas de fichiers, cela devrait donc échouer. Qu'est-ce que je rate? – tokland

Questions connexes