2016-04-09 2 views
2

Dans une application Web basée sur un client pur, j'ai besoin d'afficher une image d'arrière-plan qui n'existe parfois pas. Existe-t-il un moyen de forcer Apache à diffuser une image lorsqu'un modèle d'URL spécifique renvoie une erreur 404?Apache affiche une image par défaut lorsqu'il y a une erreur 404 sous un modèle d'URL spécifique

Le modèle d'URL qui pourrait renvoyer un 404 est:

http://host/assets/user-images/xxxxx.jpg

Là où je veux servir l'image:

http://host/assets/user-images/default.jpg

REMARQUE:

Je l'ai déjà utiliser un .htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule^index.php [QSA,L] 

Répondre

2

Ajoutez les lignes suivantes dans le fichier "/assets/user-images/.htaccess"

RewriteCond %{REQUEST_URI} ^/assets/user-images/(.*)\.jpg$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ default.jpg 

La première RewriteCond vérifiera si la requête entrante est un fichier jpg sous/assets/user- images/or et la seconde option RewriteCond with -f vérifie si le fichier demandé existe ou non. Si ce n'est pas le cas, le RewriteRule servira l'image par défaut. L'utilisateur final verra toujours l'URL de l'image originale mais l'image par défaut sera diffusée. Si le fichier d'image d'origine existe, cette règle ne sera pas exécutée.

+0

Oui, cela fonctionne comme prévu. Même si je finis par utiliser 'notFoundHandler' de Slim, c'est une solution vraiment robuste, celle que vous avez donnée. –