2016-04-09 11 views
2

In einer reinen clientbasierten Webanwendung muss ich ein Hintergrundbild anzeigen, das manchmal nicht existiert. Gibt es eine Möglichkeit, Apache dazu zu zwingen, ein Image zu liefern, wenn ein bestimmtes URL-Muster einen 404-Fehler zurückgibt?Apache zeigt ein Standardbild, wenn unter einem bestimmten URL-Muster ein Fehler 404 auftritt

Das URL-Muster, die eine 404 zurückkehren könnte, ist:

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

Wo ich das Bild dienen soll:

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

HINWEIS:

ich schon Verwenden Sie einen .htaccess

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

Antwort

2

Fügen Sie den folgenden in der Datei "/assets/user-images/.htaccess"

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

Die erste RewriteCond prüft, ob die eingehende Anforderung für eine jpg-Datei unter/assets/User- Bilder/nicht und der zweite RewriteCond mit der Option -f prüft, ob die angeforderte Datei existiert oder nicht. Wenn es nicht existiert, wird die RewriteRule das Standardbild liefern. Der Endbenutzer wird weiterhin die URL des Originalbilds sehen, aber das Standardbild wird geliefert. Wenn die ursprüngliche Bilddatei existiert, wird diese Regel nicht ausgeführt.

+0

Ja, es funktioniert wie erwartet. Auch wenn ich Slim 'notFoundHandler' benutze, ist es eine wirklich robuste Lösung, die du gabst. –