2017-09-04 2 views
0

Ich versuche, dies zu achaive,gelten Rewrite-Regel basierend auf 404 Antwortcode

if request hit www.imagesserver.com/public/images/view/3421.png 

dann

if response == 404 

Umleitung tun oder neu schreiben zu

www.imagesserver.com/public/images/view/defualt.png 

Dies gilt nur für diesen Pfad Pub . Lic/images/view/* png, was ist der beste Weg, um diese Logik zu erreichen

+0

sein keine gültiges Verzeichnis über Anwendung abgebildet – Jecki

+0

ja sein ein echt dir – Jecki

Antwort

1

Sie diese Regel in public/images/view/.htaccess verwenden können (es schaffen, wenn nicht vorhanden):

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(?!.+/defualt\.png$).+\.png$ /public/images/view/defualt.png [L,NC,R=307] 
+0

den Weg public/images/view/ist ist nicht im Dateisystem vorhanden es verwaltet über die Anwendung – Jecki

+0

Keine Probleme, können Sie diese Regel in 'public/.htaccess' (wenn es existiert) oder in Site-Root .htaccess – anubhava

+0

sein bis 404 keine Rewrite-Regel gefeuert – Jecki

0

Sie können‘ t dies wirklich tun, wenn die 404 ausgegeben worden ist, aber Sie können es vorher tun:

RewriteCond ${REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !\.(jpg|png)$ 
RewriteRule ^public/images/view/.* /public/images/view/defualt.png [L,R=301] 

diese prüft, ob die angeforderte Ressource eine Datei oder ein Verzeichnis ist und gilt nur die Regel, wenn nicht.

Es stellt auch sicher, dass die angeforderte Ressource bestimmte Bild-Erweiterungen - jpg/png in diesem Fall hat, aber Sie können das mit dem offensichtlichen Muster nach Bedarf erweitern.

Als nächstes wird die Rewrite-Regel nur ausgelöst, wenn diese Bedingungen innerhalb von /public/images/view/ erfüllt sind.

Als nächstes stelle ich dies so ein, dass eine 301-Weiterleitung von der fehlenden Ressource an das Standardbild ausgegeben wird, um dem Client klar zu zeigen, dass das Bild fehlt.

Hinweis: nicht sicher, ob absichtlich aber Sie haben einen Tippfehler in Ihrem Dateinamen für Standardbild: defualt.png

Verwandte Themen